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

C++ cli 为什么C++;CLI强制类在构造函数方法中包含变量?,c++-cli,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

但是,以下代码运行良好:

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
<>为什么C++ CLI力类在构造函数方法中有变量?< /p> 没有,只是代码中有一个错误

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
错误信息有点误导;是上面的那条线引起了问题。编译器告诉您,
mw
不是对象的实例
mw
被解释为一个函数的原型,该函数不带任何参数,并返回一个
OSamp::MasterAnsware

该行应改写为:

OSamp::masterWeapon mw();
<>为什么C++ CLI力类在构造函数方法中有变量?< /p> 没有,只是代码中有一个错误

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
错误信息有点误导;是上面的那条线引起了问题。编译器告诉您,
mw
不是对象的实例
mw
被解释为一个函数的原型,该函数不带任何参数,并返回一个
OSamp::MasterAnsware

该行应改写为:

OSamp::masterWeapon mw();

这不是最令人烦恼的解析。它只是一个函数声明。最麻烦的解析与此类似,但正如链接所示,它涉及使用匿名对象作为唯一的构造函数参数,该参数被解析为函数声明,而不是对象初始化。如果你告诉某人,
OSamp::masterwill mw()
是一个函数声明,他们会说“哦,我明白了。”如果你告诉他们
OSamp::MasterNumble mw(some_type())
是一个函数声明,他们会挠头的。@PeteBecker:是的,你说得对。我正在编辑的过程中被打断了。谢谢你提醒我。这不是最烦人的问题。它只是一个函数声明。最麻烦的解析与此类似,但正如链接所示,它涉及使用匿名对象作为唯一的构造函数参数,该参数被解析为函数声明,而不是对象初始化。如果你告诉某人,
OSamp::masterwill mw()
是一个函数声明,他们会说“哦,我明白了。”如果你告诉他们
OSamp::MasterNumble mw(some_type())
是一个函数声明,他们会挠头的。@PeteBecker:是的,你说得对。我正在编辑的过程中被打断了。谢谢你提醒我。