新人求助 为什么没调用复制构造函数
#include <iostream>
#include <string>
class A{
public:
A():contents(" "){std::cout << "call A default constructor.\n"; }
A(std::string str):contents(str) { std::cout << "call A constructor.\n"; }
A(A& a):contents(a.contents) { std::cout << "call A copy constructor.\n";}
A& operator=(const A &rhs)
{ contents = rhs.contents;
return *this;
}
private:
std::string contents;
};
int main()
{
A a("999");
A b = A();
system("pause");
return 0;
}
问题:在C++primer407页介绍说 A b = A();
复制初始化首先使用指定构造函数创建一个临时对象,然后用复制构造函数将那个临时对象复制到正在创建的对象。但上例在vs2010中运行结果并没有调用复制构造函数。求指教