c++ - c++ 为什么在 const 函数的成员指针上调用非 const 函数是合法的?
问题描述
// Example program
using namespace std;
class FOOIMPL {
public:
void fooimpl() {}
};
class FOO {
public:
void foo() const { fooimpl_->fooimpl(); }
private:
FOOIMPL* fooimpl_;
};
int main()
{
FOO foo;
foo.foo();
}
我知道这符合规范,因为 fooimpl_ 未声明为FOOIMPL* const fooimpl_;
但我想知道,为什么规范允许常量函数在成员变量上调用非常量函数?把它变成一个错误没有意义吗?
解决方案
推荐阅读
- browser - Minio:在浏览器中渲染图像
- azure - 如何在 Azure 容器实例上托管的 sftp 中使用用户定义的权限创建具有多个文件夹的多个用户
- php - 如果列 B 的值小于 700,则 phpspreadsheet 条件格式列 A
- python - Python如何从嵌套循环中返回嵌套字典?
- sql-server - 在 SSAS 表格中使用动态行过滤器进行动态数据屏蔽
- sql - 如果结果是正数和负数,如何从多列中求和并分离到单独的列中
- java - 如何获取log4j2中所有记录器的列表
- laravel - 无法使用 SendGrid 中的 2 个可能的身份验证器在用户名“apikey”的 SMTP 服务器上进行身份验证
- mysql - Mysql 5.7 - 从子选择中获取多个值
- r - 如何使用 for 循环找到两行的平均值?