C++ cli 哪个是C+的正确形式+-CLI复制构造函数?

C++ cli 哪个是C+的正确形式+-CLI复制构造函数?,c++-cli,copy-constructor,C++ Cli,Copy Constructor,我有一些这样的代码: MyClass::MyClass(MyClass^ objToCopyFrom); MyClass::MyClass(MyClass% objToCopyFrom); 这会产生一个错误: “type”:ref类没有用户定义的副本构造函数 当我查找时,它建议我的代码如下所示: MyClass::MyClass(MyClass^ objToCopyFrom); MyClass::MyClass(MyClass% objToCopyFrom); 因此,我的问题是,哪个版本

我有一些这样的代码:

MyClass::MyClass(MyClass^ objToCopyFrom);
MyClass::MyClass(MyClass% objToCopyFrom);
这会产生一个错误:

“type”:ref类没有用户定义的副本构造函数

当我查找时,它建议我的代码如下所示:

MyClass::MyClass(MyClass^ objToCopyFrom);
MyClass::MyClass(MyClass% objToCopyFrom);

因此,我的问题是,哪个版本是正确的,或者它们都是正确的?

只有您的第二个版本是正确的:

MyClass::MyClass(MyClass% objToCopyFrom);
或其变体:

MyClass::MyClass(const MyClass% objToCopyFrom);

<代码> MyClass %是所谓的C++中的引用的概念等价,仅用于CLR类型。


虽然可以有许多不同的签名,但它们的共同点是,要复制的另一个对象作为引用传入。C++/CLI与这一原则非常接近,但它使用自己类型的对象引用,即跟踪引用。

听起来不错,尽管我读到CLI忽略了您提到的
常量。