(2)const成员函数不能调用非onst成员函数,因为非const成员函数可以会修改成员变量 1 #include <iostream> 2 using namespace std; 3 class Point{ 4 public : 5 Point(int _x):x(_x){} 6 7 void testConstFunction(int _x) const{ 8 9 ///错误,在const成员函数中,不能修改任何类成员变量 10 x=_...
加了const的成员函数可以被非const对象和const对象调用但不加const的成员函数只能被非const对象调用 char getData()const{ return this->letter; } c++ 函数前面和后面 使用const 的作用: 前面使用const 表示返回值为const 后面加 const表示函数不可以修改class的成员 请看这两个函数 const int getValue(); int ge...
只有常成员函数才有资格操作常对象,没有使用const关键字说明的成员函数不能用来操作常对象。常成员函数说明格式如下: <类型说明符> <函数名> (<参数表>)const; 本质: 成员函数的第一个参数是const this指针,const修饰的成员函数的第一个参数是const T *this。 其中,const是加在函数说明后面的类型修饰符,它是...
void test(const int &a, int &b) { a = 4;//错误,const变量不能更改 b = 5; } int main(void) { int a=2; const int b=3; test(a,b); //错误,可以将非const的实参传递给函数const引用参数,但不能将const的实参传递给非const引用参数。 return 0; } 四、修饰函数 (一)函数头末尾 函...
在C++中,`const`成员函数的主要作用是保证该成员函数不会修改调用它的对象的状态。换句话说,`const`成员函数是一个只读函数,它不能修改对象的任何成员变量(除非这些变量被声明为`mutabl...
如果将赋值函数的返回值加const修饰,那么该返回值的内容不允许被改动。上例中,语句 a = b = c仍然正确,但是语句 (a = b) = c 则是非法的。 1.3 、const成员函数 任何不会修改数据成员的函数都应该声明为const类型。如果在编写const成员函数时,不慎修改了数据成员,或者调用了其它非const成员函数,编译器将指出...
像成员函数和成员函数参数一样,类的对象也可以声明为const。声明为const的对象无法修改,因此只能调用const成员函数,因为这些函数确保不修改该对象。 可以通过在对象声明的前缀const关键字来创建const对象。任何试图更改const对象的数据成员的尝试都会导致编译时错误。
const 成员函数的返回类型是引用时候,需要加const 约束 这应该是内部value 对象类型的转换,GetValue 函数中的value 被转换成了 const int(第7行没有const 也会转换),但return 的如果是 int & 类型便出现了 const int -> int & 这种类型转换,这是禁止的,所以返回引用时必须加const,总结来说,如果GetValue 是...
const成员函数,能够访问所有成员变量,但是在函数体内不能直接修改变量的值(包括普通成员变量),如果需要在函数体内修改普通成员变量的值,需要在变量定义的前面添加mutable关键字,或者通过地址间接修改。注意:const成员函数只能被该类的const对象访问。测试代码如下: ...