编写良好类的习惯
一:C++ 类有一个很重要的处理: 在适当的时候,需要程序员定义复制构造函数、赋值操作符、析构函数。
----通常,只要这三者其中一个出现需要自定义的,另外两个也需要,三者同时出现的。
什么时候需要?
------------1.类里面具有指针数据成员
------------2.有成员表示在构造函数中分配的其他资源
------------3.类在创建对象时候必须做一些特定的工作,比如新建一个唯一标识的ID。
怎样做到第一时间反应需要做这些事情?
------------1.针对第一点,发现自己定义了指针成员数据,这个比较容易识别
------------2.只要类发生了动态分配时候就需要注意了,当这个动态分配的资源直到对象生命结束都没有人对它进行处理,也就是释放,就应该自定义析构函数。
------------3.这个更简单了,针对一些特殊的数据成员,不可能直接拷贝别的对象的,其实指针数据成员也可以这样理解,保存地址的指针地址不应该跟别的对象产生的一样,
除非是想对同一对象进行操作,这种情况就应该使用引用计数了。
其实谨记这几点,其实关键就是做到 动态分配----结束释放,指针这些东西不应该太难。
二:继承
1.继承中同样要处理好上述三者,另外不同类层次中不应该定义同名非虚函数,因为不同层次中的类这样是构成不了重载函数的。
2.继承中必须为基类编写虚析构函数