我对使用c ++进行编程完全不熟悉,现在正在学习构造函数。在关于构造函数的博客文章中,我在编写之前使用" Initializer list"由于性能原因,在初始化类变量时,在类构造函数中为body分配值会更好。但背后没有任何解释原因。如果你能解释一下,我将不胜感激。
答案 0 :(得分:1)
首先你的问题不完整。确实存在一些具体案例。但为简单起见:
class Foo {
ExampleType var;
public:
Foo(ExampleType x):var(x) {
}
};
首先调用“ExampleType”类的复制构造函数来初始化:var(x)然后为“x”调用“ExampleType”的析构函数,因为它已经熄灭。 但是在变量赋值的情况下,首先构造函数调用Example类型然后调用赋值运算符,因此析构函数被调用。