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

Moh*_*kar 1 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
Run Code Online (Sandbox Code Playgroud)

但是下面的代码运行良好:

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
Run Code Online (Sandbox Code Playgroud)

Ed *_* S. 5

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

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

OSamp::masterWeapon mw();
Run Code Online (Sandbox Code Playgroud)

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

该行应重写为:

OSamp::masterWeapon mw;
Run Code Online (Sandbox Code Playgroud)