c++ Const成员函数(初学者)
C++ Const Member Function (Beginner)
在c++ Primer P259中,它说
然而,根据我目前的理解,指向const对象的指针不一定适用,因为指针本身是非const的。只要成员函数不修改所指向的对象,在指向const对象的指针上调用非const成员函数就是合法的。const对象,以及指向const对象的引用或指针;只能调用const成员函数。
对吗?
编辑:好的,我现在得到它,这是因为当我们"调用指针上的成员函数",我们实际上是先解引用它,并使用下面的对象。
引语正确
试试这个
class TestClass
{
public:
void nonconst(){};
void constMethod() const {}
};
int main()
{
TestClass const *s = new TestClass();
//s->nonconst(); // (1) no not legal
s->constMethod();
s = new TestClass(); // (2) yes legal
s->constMethod();
}
- s是一个指向常量的指针。调用非const方法会导致
传递' const TestClass '作为' this '参数将放弃限定符[-fpermissive]
- 但是s可以指向不同的实例。正如在注释中所说,指针可以指向不同的变量。
相关文章:
- "error: no matching function for call to"构造函数错误
- 初学者C++:如何将列表作为函数参数传递?
- C++初学者声明一个涉及结构数组的函数
- 为什么我的程序跳过第一个函数?(初学者C++)
- c++oop初学者-在一个函数调用中返回向量中每个创建对象的输出和
- 初学者C++难以理解我所有教师函数中的参数
- C++ 移动黑白函数的初学者问题
- 成员函数C++初学者
- 类和成员函数(初学者)
- C++|主函数错误|初学者
- C++初学者.帮助将结构传递给函数.
- 初学者对类和函数有问题
- c++初学者:对象上的函数调用没有正确执行
- c++初学者:调用默认构造函数vs自定义构造函数
- c++初学者.添加函数并调用它失败
- 递归函数?[初学者]
- c++ Const成员函数(初学者)
- (初学者)c++构造函数和方法的继承,使用一个Java示例作为起点
- 如何使用这个 C++ 模板函数.简单的初学者问题
- 一个初学者c++程序的APPCRASH,在函数上调用一个公共方法