C++(三十)之面向对象模型初探

C++的类的设计中我们可以看到类对数据和属性进行了封装。

但是封装的内部是什么样子的呢?

今天我们就这些基础的知识进行探讨一下。

在成员变量和成员属性中,

类内部的实现是如何的?

下面我们举例说明一下:

/****************************************************
 * brief  : C++面向对象模型初探 
 * author : shao 
 * date   :	2020-03-01
 * note   : none
 *
 ****************************************************/
 
/**
 * 1、非静态成员变量含在类内部
 * 2、成员函数虽申明在类内部,但却在类外且只有一份 
 */ 

#include <iostream>

using namespace std;

class A{
public:
	int a;
};

class B{
public:
	int a;
	static int b;
};

class C{
public:
	int a;
	static int b;
	
public:
	int test1();
};

class D{
public:
	int a;
	static int b;

public:
	int test1();
	static int test2();
};

void test01()
{
	A a;
	B b;
	C c;
	D d; 
	
	cout << "sizeof(class A) : " << sizeof(a) << endl;
	cout << "sizeof(class B) : " << sizeof(b) << endl;
	cout << "sizeof(class C) : " << sizeof(c) << endl;
	cout << "sizeof(class D) : " << sizeof(d) << endl;
}

int main(void)
{
	test01();
	
	return 0;
} 

结果如下:

 

我们可以看到,

A中只有普通变量,且放在类内部。

B中有普通成员变量和静态成员变量,但是只有普通变量放在类内部。

C中有普通成员变量静态成员变量和普通成员方法,但是也只有普通成员变量放在类内部。

D中有普通成员变量静态成员变量,普通成员方法和静态成员方法。但最后只有普通成员变量放在类内部。

由此可见,

在类中,只有普通成员变量会放在类内部。成员方法和静态属性部分都会放在类外,且只独有一份,

这是所有对象共同享有的。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值