小编58g*_*h1z的帖子

C++中的Const函数和接口

我将使用以下(普通)接口作为示例:

struct IObject
{
  virtual ~IObject() {}

  virtual std::string GetName() const = 0;
  virtual void ChangeState() = 0;
};
Run Code Online (Sandbox Code Playgroud)

逻辑规定GetName应该是const成员函数,而不ChangeState应该.

到目前为止,我见过的所有代码都没有遵循这个逻辑.也就是说,GetName在上面的例子中不会被标记为const成员函数.

这种懒惰/粗心大意还是有正当理由的?const在逻辑上要求我强制客户实现成员函数的主要缺点是什么?


编辑:感谢您的回复.我认为这几乎是一致的:懒惰/无知是我所看到的原因.

c++ interface const-correctness member-functions

3
推荐指数
2
解决办法
2262
查看次数