C ++中的初始化列表性能?

时间:2016-11-06 00:15:40

标签: c++ c++11

我对使用c ++进行编程完全不熟悉,现在正在学习构造函数。在关于构造函数的博客文章中,我在编写之前使用" Initializer list"由于性能原因,在初始化类变量时,在类构造函数中为body分配值会更好。但背后没有任何解释原因。如果你能解释一下,我将不胜感激。

1 个答案:

答案 0 :(得分:1)

首先你的问题不完整。确实存在一些具体案例。但为简单起见:

class Foo {
    ExampleType var;
public:
    Foo(ExampleType x):var(x) {

    }
};

首先调用“ExampleType”类的复制构造函数来初始化:var(x)然后为“x”调用“ExampleType”的析构函数,因为它已经熄灭。 但是在变量赋值的情况下,首先构造函数调用Example类型然后调用赋值运算符,因此析构函数被调用。