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
相关推荐
勿忘,瞬间16 小时前
多线程之进阶修炼
java·开发语言
吴梓穆17 小时前
UE5 c++ 常用方法
java·c++·ue5
云栖梦泽17 小时前
Linux内核与驱动:9.Linux 驱动 API 封装
linux·c++
Morwit17 小时前
【力扣hot100】 1. 两数之和
数据结构·c++·算法·leetcode·职场和发展
hoiii18717 小时前
CSTR反应器模型的Simulink-PID仿真(MATLAB实现)
开发语言·matlab
SpiderPex17 小时前
第十七届蓝桥杯 C++ B组-题目 (最新出炉 )
c++·职场和发展·蓝桥杯
炘爚17 小时前
C++ 右值引用与程序优化
开发语言·c++
si莉亚18 小时前
ROS2安装EVO工具包
linux·开发语言·c++·开源
清心歌18 小时前
CopyOnWriteArrayList 实现原理
java·开发语言
智者知已应修善业18 小时前
【51单片机单按键切换广告屏】2023-5-17
c++·经验分享·笔记·算法·51单片机