鉴于类:什么时候会调用ctor?
class C
{
public:
C()
{
cout << "Dflt ctor.";
}
C(C& obj)
{
cout << "Copy ctor.";
}
C(C&& obj)
{
cout << "Move ctor.";
}
C& operator=(C& obj)
{
cout << "operator=";
return obj;
}
C& operator=(C&& obj)
{
cout << "Move operator=";
return obj;
}
};
,然后在主:
int main(int argc, char* argv[])
{
C c;
C d = c;
C e;
e = c;
return 0;
}
因为你会从输出看到“常规”拷贝构造函数和operator=
的版本被调用,但不是那些与右值ARGS。所以我想问一下在什么情况下可以调用ctor和operator=(C&&)
?
请在投票时发表评论 – 2016-05-04 20:08:16