C++三大特性之------封装

面向对象的三个基本特征是:封装、继承、多态。其中,封装可以隐藏实现细节,使得代码模块化;继承可以扩展已存在的代码模块(类);它们的目的都是为了——代码重用。而多态则是为了实现另一个目的——接口重用!

我们今天就来认识封装有关的知识。


 在C++中,类封装通常分为下边两个部分
        -类的实现细节
        -类的使用方式

       在我们使用别人提供的类时,我们只关注于如何使用,而不关心类的具体实现;我们在给别人提供类时,别人也只是关心如何使用类,我们自己就必须懂得类的具体实现。

    -使用类时,不需要关心类的实现细节
    -创建类时,才需要考虑其内部实现细节


1、什么是封装?

  • 封装是隐藏对象的属性和实现的细节,对外只保留一个接口与对象交互,将数据与操作数据的方法进行有机结合。

在这里简单举一个例子:

class people //定义一个人的类
{
public:
	string name; //数据成员
	int age;     //数据成员
	bool sex;    //数据成员
	double height;
	int eat();   //数据方法
};

函数是封装的一种形式:函数所执行的细节行为被封装在函数本身这个更大的实体中,被封装的元素隐藏了它们的实现细节–可以调用一个函数但是不能够访问函数所执行的语句。

  • 访问限定符:

(1)public(共有) :程序中任意位置都可以访问

(2)private(私有):只有本类可以访问

(3)protected(保护):本类和子类可以访问

class的默认访问权限是private,而struct为public型(因为struct要兼容C)。C++常用的是class 。

 在这里写个简单程序进行描述:

class Boy
{
private:
	int height;
	int money;
public:
	int age;
	int weight;
	void print()
	{
		int height = 179;
		int money=10000;

		cout<<"I am a boy,my height is "<<height<<" cm"<<endl;
		cout<<"my money is "<<money<<" dollars"<<endl;
	}
};

class Gril
{
private:
	int age;
	int weight;
public:
	void print()
	{
		int age=20;
		int weight=50;

		cout<<"I am a gril,my age is "<< age<<endl;
		cout<<"my weight is "<<weight<<" KG"<<endl;
	}
};

int main()
{
	Boy b;
	Gril g;

	//g.age=18;//error age为私有成员属性,类外不能访问
	b.age=18;//公有成员属性,类外可进行访问
	g.print();//OK
	b.print();
}

下面来说说类成员的作用域
    -类成员的作用域都只在类的内部,外部无法直接访问
    -成员函数可以直接访问成员变量调用成员函数
    -类的外部可以通过类变量访问public成员
    -类成员的作用域与访问级别没有关系

    C++中用struct定义的类中所有成员默认为public属性;class定义的类中所有成员默认为private属性
 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值