const 学习笔记
#include<stdlib.h> #include<iostream> using namespace std; int main(){ // const 仅仅起到是否为常数的修饰 // 普通变量 int a=1; const int b=a; // b定了,不能再赋值 a=2; cout << b <<endl; // 指针时 int *p=&a; const int *p1=p; // *p1定了,不能再给*p1赋值,但是p1可变,如p1=&c,a也可变
// 注意不能将p1赋值给新的指针变量 cout << *p1 <<endl; int * const p2=&a; // 注意此时const的顺序,此时p2不能变了 a=2323; cout << *p2 <<endl; // 引用时 int c=123; const int &y=c ; // y定了,所以y不能变了,但是c可变,y的值跟着变,也就是说:外界是改变不了y的,它只随着原配(c)的变化而变化。
// 若函数的形参是:const int &a,表示我只把a的值告诉你这个函数,但是你这个函数不可以修改我的a值,只有原配可以改动 cout << y <<endl; c=2222; cout << y <<endl; system("pause"); return 0; }
定义常成员函数:
void Tool::nice() const{........} // const直接写在函数名后面
定义常指针:
const Tool *p = new Tool(23);
定义常对象:
const Tool p ;
定义常引用:
Tool a;
const Tool &b = a;
注意:
1.如果类的成员变量被const修饰,则只能通过初始化列表的方法来对被修饰的变量重新赋值
2.常对象或常引用或常指针只能调用常成员函数。但是普通对象(无const修饰)都能调用, 即:既能调用常成员函数,也能调用非常的。