class Inner {
public:
Inner() {
std::cout << "Inner" << std::endl;
}
};
class Outer {
public:
Outer() {
i = Inner();
}
Inner i;
};
int main() {
Outer o;
}
以上代码打印Inner
两次,表示在Outer
中,Inner i;
首先初始化一次,然后在其构造函数中再次初始化。如果Inner
是一个相当昂贵的初始化类,这似乎非常低效。什么是避免这种双重初始化的好方法?