次の方法で共有


コンパイラ エラー C3073

'type': ref クラスには、ユーザー定義されたコピー コンストラクターがありません

/clr (共通言語ランタイム コンパイル) コンパイルでは、参照型のコピー コンストラクターがコンパイラによって生成されません。 /clr コンパイルでは、参照型のインスタンスをコピーする必要がある場合、その型に対して独自のコピー コンストラクターを定義する必要があります。

詳細については、「参照型の C++ スタック セマンティクス」を参照してください。

次の例では C3073 が生成されます。

// C3073.cpp
// compile with: /clr
ref class R {
public:
   R(int) {}
};

ref class S {
public:
   S(int) {}
   S(const S %rhs) {}   // copy constructor
};

void f(R) {}
void f2(S) {}
void f3(R%){}

int main() {
   R r(1);
   f(r);   // C3073
   f3(r);   // OK

   S s(1);
   f2(s);   // OK
}