【问题标题】:Properties using private methods in c++在 C++ 中使用私有方法的属性
【发布时间】:2013-03-24 13:13:32
【问题描述】:

我有这门课:

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

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

【问题讨论】:

  • 如果你只是让这些函数用作访问器呢?为什么这不是一个解决方案?
  • 这是什么语言?它看起来不像 c++。
  • @H2CO3 访问者是什么意思?我不熟悉这个词.. :)
  • @juanchopanza this 看起来像是微软对 C++ 的扩展
  • @GiwrgosTsopanoglou 访问器是唯一负责设置和获取属性的方法。

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


【解决方案1】:

如何创建一个使用无法使用的功能的属性 课外?

恐怕只能使用另一种语言。标准 C++ 没有这样的属性糖(很遗憾),虽然有一些 hack,但它们都不是很漂亮,包括 Microsoft 的。有关私有方法与 Microsoft declspec(property) 扩展不兼容的特定问题的更多讨论,请参见此处: http://blog.aaronballman.com/2011/11/an-almost-useful-language-extension/

【讨论】:

  • 好的,这正是我所需要的。您链接的文章非常适合我的问题。谢谢:)
猜你喜欢
  • 2015-08-19
  • 2012-10-29
  • 1970-01-01
  • 2013-10-28
  • 1970-01-01
  • 1970-01-01
  • 2011-08-04
  • 2010-11-21
  • 2011-02-13
相关资源
最近更新 更多