构造函数优化

时间:2015-02-20 16:06:21

标签: c++ optimization constructor

这是具有详细构造函数的类:

class A
{
public:
    A() : _a(-1) { std::cerr << "ctor" << _a << std::endl; }
    A(int a_) : _a(a_) {  std::cerr << "ctor2 "<< _a << std::endl; }
    ~A() { std::cerr << "dtor "<< _a << std::endl; }
    A(const A&) { std::cerr << "cctor "<< _a << std::endl;}
    A(A &&) { std::cerr <<"mctor " << _a << std::endl; }
private:
    int _a;
};

为什么在这个例子中只有一个构造函数是callet:

int main(int,char **)
{
    A a(A(1));
}

不调用移动也不调用复制构造函数。它是由编译器自动优化的吗?

0 个答案:

没有答案