2013年10月15日
摘要: 1、对于构造方法,如果没有声明任何一个构造方法,编译器会自动生成一个Default构造方法。2、对于Copy构造方法,Copy赋值操作符,析构方法,如果没有声明,编译器会自动生成相应的方法。3、如果不想使用编译器自动生成的构造方法,就明确表示拒绝。4、对于Copy构造方法和Copy赋值操作符,使用private禁止外部访问,为了避免成员方法和友元方法访问,对这类方法只声明,不定义,这样的话,到调用Copy构造或者Copy赋值的时候,就会导致link错误。 boost库中的nonecopyable,就是这样一个类,如果想让自己的类禁止copy构造和copy赋值,继承nonecopyable就O. 阅读全文
posted @ 2013-10-15 18:38 Andy Niu 阅读(245) 评论(0) 推荐(0)
摘要: 1、static对象包括: global对象 namespace作用域下的对象 在class,function,file作用域内的static对象2、在方法内的static对象成为 local static对象,其他的称为non-local static对象。3、static对象只被初始化一次。 阅读全文
posted @ 2013-10-15 18:30 Andy Niu 阅读(480) 评论(0) 推荐(0)
摘要: 1、把程序比喻成做一件事,面向过程编程:把这件事分成一个一个的小步骤,有一个全能类,做所有的事,可以使用所有的资源,按照步骤把事情做好。面向对象编程:把这件事分工,每个人做其中的一部分,大家协作把事情完成。2、面向对象的特征:抽象,封装,继承,多态。3、抽象:使用抽象类的引用指向具体对象,只需要接口。4、封装:自己的东西不允许别人访问,可以是代码模块化,隐藏内部的实现细节。5、继承:Is_A的关系,可以代码复用。6、多态:分为编译时多态和运行时多态。 a、编译时多态:分为过载和模版参数具现。过载:对于同名的方法,根据形参表的不同确定调用哪个方法。模版参数具现,在编译期,生成不同的模版方法或者. 阅读全文
posted @ 2013-10-15 18:26 Andy Niu 阅读(212) 评论(0) 推荐(0)