发布时间:2013-01-07 10:53:59
设计一个类的种种方面考虑,把其当作一个完整的type来考虑(难道不是吗。。)。首先要明确是否真的需要这么一个type。实体对象如何被创建和销毁,对象复制(特别注意作为值传递的参数时)和赋值有无区别。需要对外提供哪些接口(包括重载的运算符),内部需要哪些成员,是否要配合其它类(继承关系)。等等很多方面的考虑。......【阅读全文】
发布时间:2013-01-07 10:48:43
写了一大堆,接口要简单明确,不要让人误解误用,参考STL容器,其实更推荐的是shared_ptr。......【阅读全文】
发布时间:2012-12-26 17:22:27
有时单继承是不够解决问题的,需要多重继承,即一个派生类从多个基类派生而来,但在派生列表中每个类只允许出现一次。派生类的构造函数在初始化列表中调用最直接的一个或多个基类的构造函数(定义了自己的考构和赋值运算符也请遵循)。创立对象时众基类的建造顺序按照派生列表中的顺序进行。析构则是严格相反的顺序。每个基类型的指针或引用(实际对象为派生类对象)都可以触发动态绑定,同理delete该指针时,会触发层层析构(别忘了基类一定要的virtual destructor)。派生类中的名字解析按照每一个基类的分支(subtree)分别进行查找,如果出现2义性则报错。 点击(此处)折叠或打开class a{publ......【阅读全文】
发布时间:2012-12-24 11:26:23
确保new出的对象被及时保存,避免中间语句优化或其它原因发生异常时,new出的对象没有存到智能指针对象中。......【阅读全文】
发布时间:2012-12-24 11:08:09
new和delete的成对使用,new出数组时就一定要 delete[],避免泄露。避免将数组typedef成新类型。typedef int IA4[4];这样IA4类型的动态对象在释放时需要使用delete[]而不是普通的delete。最后推荐了C++中尽量使用容器替代数组。......【阅读全文】