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++ 没有这样的属性糖(很遗憾),虽然有一些 hack,但它们都不是很漂亮,包括 Microsoft 的。declspec(property)有关您的私有方法与 Microsoft扩展 不兼容的特定问题的更多讨论,请参见此处:http: //blog.aaronballman.com/2011/11/an-almost-useful-language-extension/

于 2013-03-24T13:22:45.600 回答