【问题标题】:static functions constant static member functions静态函数 常量静态成员函数
【发布时间】:2014-03-02 18:20:55
【问题描述】:

我想问一个简单的问题

例如在我的私有成员中,我声明了静态成员。

static int id;

并且在公共场合我已经为这个 id 使用了 getter 函数

static int getID() const;

编译器给我一个错误但是当我不使用 const 时它没有给出任何错误,因为这只是 getter 它应该是恒定的,请告诉我原因。

【问题讨论】:

    标签: c++ static constants


    【解决方案1】:

    这是一个static 函数,它不能是const,因为它不作用于任何特定的类实例。这意味着此类函数没有指向任何特定实例的this 指针(作为隐藏参数隐式传递)。你应该写

    static int id;
    static int getID();
    

    也可以使这个函数非static

    int getID() const;
    

    然而,这样的函数通常应该是静态的,只要它不需要访问特定对象的表示。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多