如何解决错误:无法在C ++ CLR中从'OSamp :: Weapon'转换为'OSamp :: Weapon'

时间:2013-03-08 23:36:02

标签: c++ visual-c++ c++-cli

我得到了一个奇怪的错误,说不能将类型转换为自己!
谁能告诉我这里有什么问题! ?

public ref class Weapon{

private :
    int Slot_, Id_, Ammo_;
    System::String^ Name_;

public :
    Weapon(EWeapons Id, int Ammo) : Id_((int)Id), Ammo_(Ammo){}
    Weapon(int Id, int Ammo) : Id_(Id), Ammo_(Ammo){}

//other part of code...
}

property OSamp::Weapon Weapon{
    OSamp::Weapon get(){
        return OSamp::Weapon(1, 1000);
// error C2440: 'return' : cannot convert from 'OSamp::Weapon' to 'OSamp::Weapon'
    }
}

1 个答案:

答案 0 :(得分:1)

您应该使用 value class 而不是引用类。

值类可以按值传递,不需要通过引用指针传递。