1
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
4

1 に答える 1

5

C++ CLI がクラスのコンストラクター メソッドに変数を強制するのはなぜですか?

そうではありません。コードにエラーがあるだけです。

OSamp::masterWeapon mw();

エラー メッセージは少し誤解を招きます。問題を引き起こしているのは上記の行です。コンパイラは、それmwがオブジェクトのインスタンスではないことを示しています。mwは、引数を取らず、 を返す関数のプロトタイプとして解釈されますOSamp::masterWeapon

行は次のように書き換える必要があります。

OSamp::masterWeapon mw;
于 2013-03-08T18:02:01.673 に答える