C++类里面的const

来源:互联网 发布:好看的网络电视剧 编辑:程序博客网 时间:2024/06/05 17:38
int extern_a = 0;class A{public:const int cc;int b;int  bb(); A(int a):b(a),cc(0){}void aa()const;};int A::bb(){printf("who call me ?\n");return b;}// const A 对象只能调用const成员函数void A::aa()const{extern_a = b;//对,extern_a 没有const限制//b = 1;//错误,this为常量指针//this->b = 1;//错误,this为常量指针const A* const thisA* p = (A*)this;p->b = 10000;//对,p没有const限制p->bb();//对,*p::我不是const A,我骄傲A q = (*this);q.bb();//对的,q::我不是const A,我骄傲//this->bb();//*this指向的const A ,我不敢调用非const函数。(A(*this)).bb();//好吧,你赢了。。。我竟然无语}int main(){A classA(20);const A classB(10);printf("%d\n",classA.b);classA.aa();classA.bb();int k = classB.b;//可以,只是不能调用非const成员函数//A::bb();//不能这样子的啦,非静态成员函数的啦printf("%d\n",extern_a);printf("%X\n",&A::bb);return 0;}

0 0
原创粉丝点击