C++基础知识(成员变量和成员函数)

1、成员变量和成员函数是分开存储的;

2、空类大小:1;

3、只有非静态成员属性才属于对象身上。

#define _CRT_SECURE_NO_WARNINGS
#include<iostream>
using namespace std;

//#pragma pack(1)   //#pragma pack (n) 作用:C编译器将按照n个字节对齐。最终结果不是16而是12

class Person
{
public:
	int m_A; //非静态成员变量,属于对象身上
	void func(){};  //函数名是函数指针   成员属性和成员函数是分开存储的
	                 //非静态成员函数不属于对象身上
	static int m_B;  //静态成员变量是共享的数据,不能具体的说该变量是属于哪一个对象身上
	static void func2(){};  //静态成员函数,不属于对象身上
	double m_C; //16  字节对齐8   int 4  double 8
};


//结论:只有非静态成员变量,才属于对象身上

void test01()
{
	cout << "size of (Person) = " << sizeof(Person) << endl;
	//空类的大小为1  每个实例的对象,都有独一无二的地址,char维护这个地址
	//Person p[10]    区分p[0]  p[1]
}

void test02()
{
	//this指针指向被调用的成员函数所属的对象

	Person p1;
	p1.func();  //编译器会偷偷加上一个this指针  Person * this

	Person p2;
	p2.func();
}


int main()
{
	test01();
	system("pause");
	return EXIT_SUCCESS;
}

 

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值