C++系列--成员变量和成员函数的存储

  • 空对象所占的内存为1,是为了区分空对象所占的内存位置。
  • 非空对象所占的内存按照实际的来。
  • 非静态成员变量属于类的对象上面。
  • 非静态成员函数和静态成员函数,静态成员变量都不属于类的成员上。
cpp 复制代码
空对象所占的内存为1,是为了区分空对象所占的内存位置。
code:
	#include<iostream>
	using namespace std;
	class City
	{
	public:
	
	};
	void main()
	{
		City c1;
		cout << "空对象所占的内存:" << sizeof(c1) << endl;
		system("pause");
	};
result:
空对象所占的内存:1
cpp 复制代码
非空对象按照实际的内存来,非静态成员变量存在于类的对象上,静态成员不属于类的对象上。
code:
	#include<iostream>
	using namespace std;
	class City
	{
	public:
		int num = 2;
		static int s_num;	// 不属于类的对象上
	};
	int City::s_num = 5;
	void main()
	{
		City c1;
		cout << "对象所占的内存:" << sizeof(c1) << endl;
		system("pause");
	};
result:
	所占的内存:4
cpp 复制代码
非静态成员函数和静态成员函数都不属于类的成员上
code:
	#include<iostream>
	using namespace std;
	class City
	{
	public:
		int num = 2;
		static int s_num;
		void show_value()
		{
			cout << num << endl;
		}
		static void s_show_value()
		{
			cout << s_num << endl;
		}
	};
	int City::s_num = 5;
	void main()
	{
		City c1;
		cout << "对象所占的内存:" << sizeof(c1) << endl;
		system("pause");
	}
result:
	所占的内存:4
相关推荐
Au_ust11 分钟前
js:事件流
开发语言·前端·javascript
lele_ne12 分钟前
【python】将字符串转换成整数类型
开发语言·python·算法
橘哥哥18 分钟前
前端通过后端返回的数据流下载文件
开发语言·前端·javascript
Atlim27 分钟前
maven多模块项目编译一直报Failure to find com.xxx.xxx:xxx-xxx-xxx:pom:1.0-SNAPSHOT in问题
java·开发语言·maven
军训猫猫头35 分钟前
23.行号没有了怎么办 滚动条没有了怎么办 C#例子
开发语言·c#
黑客老李1 小时前
BaseCTF scxml 详解
开发语言·网络·数据库·python·sql·安全
编程|诗人1 小时前
Ruby语言的数据库编程
开发语言·后端·golang
SyntaxSage1 小时前
Ruby语言的学习路线
开发语言·后端·golang
云端 架构师1 小时前
Ruby语言的并发编程
开发语言·后端·golang
DevOpsDojo1 小时前
Ruby语言的字符串处理
开发语言·后端·golang