成员变量和成员函数的存储方式

c++中,类内的成员变量和成员函数分开存储

只有非静态成员变量存储在类的对象中

 注意:string 类型的数据 所占的内存为28  string是一个类

1.空对象有一个字节,用来区分对象

class person
{
public:

};

int main()
{
	person p;
	cout << "对象p占用的内存:" << sizeof(p) << endl;
	return 0;
}

成员变量和成员函数的存储方式_第1张图片

2.只有一个成员变量时

class person
{
public:
    //当类中只有一个int 型变量时
	int height;
};
int main()
{
    
	person p;
	cout << "对象p占用的内存:" << sizeof(p) << endl;
	return 0;
}

成员变量和成员函数的存储方式_第2张图片

3.有成员函数,静态成员变量 ,静态成员函数时 所占内存不变

class person
{
public:
	static void P() { cout << "静态成员函数" << endl; }
	void Q() { cout << "成员函数" << endl; }
	static int age;
	int height;
};
//类外初始化
int person::age = 10;
int main()
{
	person p;
	cout << "对象p占用的内存:" << sizeof(p) << endl;
	return 0;
}

成员变量和成员函数的存储方式_第3张图片

4.当有多个成员变量时 ,内存算法和struct相同

你可能感兴趣的