1. 对象的创建与销毁触发父对象和成员对象的递归创建或销毁。当心复杂层次中对象的复合使用,消耗更高昂。
2. 确保所编写的代码实际使用了所有创建对象和这些对象所执行的计算。否则会浪费,即额外消耗
3. 对象的生命周期不是无偿的,创建和销毁都会消耗CPU周期。通常等到需要使用对象的地方再创建它。
4. 编译器必须初始化被包含对象之后再执行构造函数体。在初始化阶段完成成员对象的创建。这可以降低随后在构造函数部分调用赋值操作符的开销。
例:string name = const char* s;
首先会创建临时对象 string temp; temp(s); //从s构造一个string对象 name = temp; temp的析构函数。
所以对于name这个对象必须首先初始化。如name(s)(就是在初始化的时候采用显式初始化 ); 这样可以减少赋值操作符的开销
Person::Person(const char *s): name(s){} //name为Person的 成员变量