const 类成员函数不能修改类数据成员
时间: 2023-10-06 13:08:10 浏览: 146
是的,const 类成员函数被称为常量成员函数,它不能修改类的数据成员,也不能调用非 const 成员函数,以保证对象在调用这个函数时不被修改。如果在 const 成员函数中对数据成员进行修改操作,编译器会报错。常量成员函数的声明格式为在函数声明末尾加上 const 关键字。例如:
```
class MyClass {
public:
void myFunc() const;
};
void MyClass::myFunc() const {
// 不能修改数据成员
// 或调用非 const 成员函数
}
```
相关问题
常成员函数不能直接修改类的数据成员,但能调用该类常成员函数不能直接修改类的数据成员,但能调用该类的非常成员函数的非常成员函数
是指在函数声明和定义时,函数名后面加上 const 关键字,以表示该函数是常成员函数。在常成员函数中,不能修改类的数据成员,但可以访问和调用该类的非常成员函数。常成员函数在访问类的数据成员时,会自动将 this 指针转换为指向常量的指针,从而保证了该函数不能修改数据成员的值。常成员函数主要用于不需要修改数据成员的情况下,访问类的数据成员和调用类的非常成员函数。
const 成员函数
const成员函数是指在成员函数的声明和定义中使用const关键字修饰的函数。它表明这个函数不会对类对象的数据成员进行任何改变。在设计类的时候,一个原则是对于不改变数据成员的成员函数都要加上const,而对于改变数据成员的成员函数不能加上const。const关键字对成员函数的行为作了更加明确的限定。在const成员函数中,this指针的类型是const Data * const this,即指向常量的常量指针,顶层const和底层const都存在。常函数内不可以修改成员属性。例如,在一个类的常函数中,不可以通过this指针修改类的成员属性。
阅读全文