在c ++中使用私有方法的属性

时间:2013-03-24 13:13:32

标签: c++ class visual-c++ properties private

我有这堂课:

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时,会使用私有方法。

如何创建一个使用不能在课外使用的函数的属性?

1 个答案:

答案 0 :(得分:1)

  

如何制作使用不能使用的功能的属性   在课外?

我害怕只能用另一种语言。标准C ++没有这样的属性糖(遗憾的是),虽然有一些黑客,但它们都不是很漂亮,包括微软。有关您的私有方法与Microsoft declspec(property)扩展程序不兼容的特定问题,请参阅此处以获取更多信息: http://blog.aaronballman.com/2011/11/an-almost-useful-language-extension/