为什么C ++ CLI强制类在构造函数方法中包含变量?

时间:2013-03-08 18:00:08

标签: c++-cli

public ref class masterWeapon{

public :
    property int Slot {
        int get(){
            return 0;
        }
    }
    masterWeapon(){ 
    }
};

OSamp::masterWeapon mw();
int v = mw.Slot; //ERROR error C2228: left of '.Slot' must have class/struct/union

但是下面的代码运行正常:

public ref class masterWeapon{

public :
    property int Slot {
        int get(){
            return 0;
        }
    }
    masterWeapon(int useless){  
    }
};

OSamp::masterWeapon mw(231312);
int v = mw.Slot; //works fine

1 个答案:

答案 0 :(得分:5)

  

为什么C ++ CLI强制类在构造函数方法中包含变量?

它没有,你的代码中只有一个错误。

OSamp::masterWeapon mw();

错误消息有点误导;正是这一行导致了这个问题。编译器告诉您mw不是对象的实例。 mw被解释为函数的原型,该函数不带参数并返回OSamp::masterWeapon

该行应改写为:

OSamp::masterWeapon mw;