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;
};