【问题标题】:Declaring a static member function const or virtual声明静态成员函数 const 或 virtual
【发布时间】:2014-08-19 15:50:12
【问题描述】:

为什么静态成员函数不能声明为const?

我知道静态函数不会作用于任何特定的类实例。这意味着此类函数没有指向任何特定实例的 this 指针(作为隐藏参数隐式传递)。但我不明白为什么在声明为 const 时会出现编译器错误,因为它没有更改任何特定的实例。

其次,为什么静态成员函数不能声明为virtual?

需要对此进行澄清。

【问题讨论】:

  • 为什么需要“指导”?只是不要将const 添加到静态成员函数中。

标签: c++


【解决方案1】:

为什么声明为const时会出现编译错误

const 表示“this 是指向const 对象的指针”。因为没有this,所以const没有什么可以修改的。

为什么不能将静态成员函数声明为虚拟的

virtual的意思是“根据this的实际动态类型选择合适的函数”。由于没有this,因此没有任何选择依据。

【讨论】:

    猜你喜欢
    • 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
    相关资源
    最近更新 更多