我有一个关于 C++ 语法/构造的查询:在什么情况下可以调用以下 Foo(Foo x){}?我知道它不会像初始化那样被调用,因为它们会调用复制构造函数
Foo a;
Foo x = a;
or
Foo x(a);
不适用于类型转换,因为传递给它的参数与类的类型相同
想不出调用 Foo(Foo x){} 的场景,否则它将永远是死代码。
class Foo {
public :
Foo(Foo x){ // notice it is not not a Copy constructor!!, i intented it to make like ordinary ctor taking same class object
}
Foo(int x) : m_data(x){}
private :
int m_data;
};