/*
* C++ const的含义
* 2017.11.2
* MOV
**/
#include<iostream>
using namespace std;
class teacher{
public:
void print()const{
//a =11; //错误const成员函数不能调用非const成员(numtable除外)
cout<<"test"<<endl;
}
const int* getA()const{
return &a;
}
const int& getB()const{
return b;
}
private:
int a = 0;
mutable int b = 1;
};
void Headconst(){
int a = 10;
int b = 11;
const int* p = &a; //可以修改指针指向的地址,不可以修改所指向的变量
p = &b; //可以
//p = 11; //错误
cout<<*p<<endl;
}
void Lastconst(){
int a = 10;
int b = 11;
int* const p = &a; //可以修改指针指向所指向的变量,不可以修改所指向的地址
//p = &b; //错误
*p = 11; //可以
cout<<*p<<endl;
}
void HeadLastconst(){
int a = 10;
int b = 11;
const int* const p = &a;
//p = &b; //错误
//*p = 11; //错误
cout<<*p<<endl;
}
void constFun(){ //普通调用
teacher *b;
b->print();
}
void constFunY(){ //const的保护性,类型统一
teacher *c = new teacher();
const int* num = c->getA();
cout<<*num<<endl;
}
void constFunM(){ //mutable突破const的限制
teacher *d = new teacher();
const int& num = d->getB();
cout<<num<<endl;
}
int main()
{
Headconst();
Lastconst();
HeadLastconst();
constFun();
constFunY();
constFunM();
return 0;
}
C++ const的含义--代码说明
最新推荐文章于 2022-02-01 12:49:26 发布