非静态成员函数后面加const(加到非成员函数或静态成员后面会产生编译错误),表示成员函数隐含传入的this指针为const指针,决定了在该成员函数中,任意修改它所在的类的成员的操作都是不允许的(因为隐含了对this指针的const引用):唯一的例外是对于mutable修饰的成员.加了const的成员函数可以被非const对象和const对象调用,但不加const的成员函数只能被非const对象调用.例如: class A { private: int m_a; public: A() : m_
一.引用 引用是别名 必须在定义引用时进行初始化.初始化是指明引用指向哪个对象的唯一方法. const 引用是指向 const 对象的引用: ; const int &refVal = ival; // ok: both reference and object are const int &ref2 = ival; // error: non const reference to a const object 可以读取但不能修改 refVal ,因此,任何对 refVal 的赋值都是不合
含义 引用不产生副本,只是给原变量起了别名. 对引用变量的操作就是对原变量的操作. 基本语法 数据类型 &别名 = 原名 e.g. int a = 10; int &b = a; //引用必须要初始化,一旦初始化后不可以更改:因为本指是指针常量,不可以修改指针的指向 可以通过赋值修改: int main() { int a = 10; int &b = a; int c = 20; b = c; //可以赋值,但是不能更改引用 cout << "a"