0

私はこのクラスを持っています:

class Size
{
    private:
        int size_x;
        int size_y;

        int GetX( void );
        int GetY( void );
        void PutX( int x );
        void PutY( int y );
    public:
        _declspec ( property ( get = GetX , put = PutX ) ) int X;
        _declspec ( property ( get = GetY , put = PutY ) ) int Y;
};

XまたはYにアクセスしようとすると、プライベートメソッドが使用されるため、このコードは機能しません。

クラス外では使用できない関数を使用するプロパティを作成するにはどうすればよいですか?

4

1 に答える 1

1

クラス外では使用できない関数を使用するプロパティを作成するにはどうすればよいですか?

他の言語を使うだけで、私は恐れています。標準のC++には(悲しいことに)そのようなプロパティシュガーはありません。いくつかのハックはありますが、Microsoftを含め、どれも非常にきれいではありません。declspec(property)Microsoft拡張機能 と互換性のないプライベートメソッドの特定の問題に関する詳細については、こちらを参照してください:http: //blog.aaronballman.com/2011/11/an-almost-useful-language-extension/

于 2013-03-24T13:22:45.600 に答える