本文章主要讲述了C++类的成员的存储和this指针。在C++刚入门时,觉得this指针是很神奇的东西,以下是总结的一些内容,让我们来大概了解this指针。
1.成员变量和成员函数分开存储
首先,在C++类中,类里面的成员变量和成员函数是分开存储的。只有非静态成员变量才属于类的对象,非静态函数也不属于类的对象,静态成员变量和静态成员函数是所有对象共享一份数据,不属于某一个对象,所以只有非静态成员变量才属于类的对象上。
例如:
大家可以先猜想下会打印输出多少,0?4?8?。。。然后再运行代码确认结果。
#include
#include
using namespace std;
class A
{
int m_data;
void setdata(int data)
{
m_data = data;
}
};
int main()
{
A a;
cout << sizeof(a);
}
运行后发现打印输出是4,这就证明了上面的一段话。
其次,我们可能会觉得空对象里啥也没有,所以空对象占用内存空间为0,但是不是这样哦,C++编译器会给空对象也分配一个字节空间,这样的目的是区分每一个空对象占用空间的位置。
2.this指针
每一个非静态成员函数不属于某一个对象,非静态成员函数只会诞生一份函数实例,多个同类型的对象共用同一份代码。
this指针时隐含在每一个非静态成员函数内的一种指针,不需要额外定义,直接使用即可。this指针的本质时指针常量,所以this指针的指向是不可以改变的。
在类的非静态成员函数中返回对象本身,可使用return *this。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)