|
|
|
|
1)不要直接访问其它类的数据成员 2)不要使用内联函数 3)慎重使用模板 4)显式写出编译器会自动生成的函数,比如默认构造函数,析构函数,拷贝构造函数,即使它们什么也不做。 5)优先考虑组合,而不是继承 6)使用以下的办法: 刚开始的实现,包括MyClass.h 和MyClass.cpp文件。 // MyClass.h![]() class MyClass { public: void doIt(); private: int m_value1; float m_value2; };这种代码组织方式有什么问题呢?它的问题称之为“私有数据依赖”,其它的客户类不能访问其私有数据,但MyClass如果修改了私有数据的定义,客户类必须要重新编译。对此,可以采用下列办法: MyClass.h // MyClass.h![]() class MyClass { public: MyClass(); ~MyClass(); void doIt(); private: stuct Data; Data * d; };MyClass.cpp // MyClass.cpp![]() struct MyClass::Data { int value1; float value2; };![]() MyClass::MyClass() : d(new Data) { } MyClass::~MyClass() { delete d; } |


