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
相关推荐
Data_agent1 分钟前
Cocbuy 模式淘宝 / 1688 代购系统(欧美市场)搭建指南
开发语言·python
lsx20240610 分钟前
《Foundation 下拉菜单》
开发语言
期待のcode14 分钟前
认识Java虚拟机
java·开发语言·jvm
微露清风18 分钟前
系统性学习C++-第二十讲-哈希表实现
c++·学习·散列表
raining_peidx18 分钟前
xxljob源码
java·开发语言
肥猪猪爸19 分钟前
双重检查锁(DCL)与 volatile 的关键作用
java·开发语言·单例模式
yaoxin52112327 分钟前
289. Java Stream API - 从字符串的字符创建 Stream
java·开发语言
清 澜31 分钟前
c++高频知识点总结 第 1 章:语言基础与预处理
c++·人工智能·面试
癫狂的兔子35 分钟前
【Python】【Flask】抽奖功能
开发语言·python·flask
你怎么知道我是队长36 分钟前
C语言---无名位域
c语言·开发语言