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
相关推荐
JS.Huang2 分钟前
【JavaScript】构造函数与 new 运算符
开发语言·javascript·原型模式
lqj_本人4 分钟前
【Rust编程:从小白入坑】Rust所有权系统
开发语言·jvm·rust
疏狂难除19 分钟前
【Tauri2】050——加载html和rust爬虫
开发语言·爬虫·rust·spiderdemo
眠りたいです20 分钟前
基于脚手架微服务的视频点播系统-脚手架开发部分-FFmpeg,Etcd-SDK的简单使用与二次封装
c++·微服务·云原生·架构·ffmpeg·etcd
Zhangzy@1 小时前
仓颉的空安全基石:Option类型的设计与实践
java·开发语言·安全
oioihoii2 小时前
Rust中WebSocket支持的实现
开发语言·websocket·rust
明道源码4 小时前
Kotlin Multiplatform 跨平台方案解析以及热门框架对比
开发语言·kotlin·cocoa
fie88894 小时前
C#实现连续语音转文字
开发语言·c#
一念&6 小时前
每日一个C语言知识:C 头文件
c语言·开发语言·算法
DARLING Zero two♡7 小时前
仓颉GC调优参数:垃圾回收的精密控制艺术
开发语言·仓颉