最近在网上查资料的时候偶然看到有人说static成员函数不能用const修饰的问题,感觉有点奇怪,以前都没有这么用过,也没有想过他们两个到底能不能搭配起来使用,后来仔细一想发现确实是这么回事,因为我们在定义一个类对象的时候,实际上只给该对象的非静态的数据成员分配内存空间(假设没有虚函数),而该类的静态成员数据以及该类的函数都在编译的时候分配到一个公共的空间里,所有,在定义一个对象并调用类对象的函数的时候,函数根本不知道到底是哪个对象调用了他,怎么解决这个问题呢,C++利用传递this指针的方式来实现,调用一个类对象里的函数的时候,将把这个对象的指针传递给他,以便函数对该对象的数据进行操作,对于一个定义为const的函数,传递的是const的this指针,说明不能更改对象的属性,而对static成员的函数不需传递this指针,所有就不需要用const来修饰static的成员函数了!就说const属性的作用就是对被传递的this指针加以限定,而对static成员函数的调用根本不传递this指针,所有不需const来修饰static的成员函数~~~~ PS:这是个人理解
有关static成员函数不能用const修饰的问题
最新推荐文章于 2021-06-23 19:42:44 发布