【C++语法地图】类的封装

  • 类的封装

C++面向对象的三大特性:封装、继承、多态;万事万物都可虚拟为对象,对象有其属性和行为;属性体现为数据行为体现为函数

例如:猫作为液体...啊是对象,属性有品种、体重、年龄...,行为有跑、跳、喵喵喵...

具有相同性质的的对象,可以抽象为类,人属于人类,猫属于猫类,类就是用来构造对象的一个模板

封装的意义1

封装类,将数据和函数写在一起,作为虚拟化的属性和行为,将属性和行为作为一个整体,表现事物

类封装语法:

class 类名访问权限 : 属性/行为 };

Sample:

class Cat{
public:
	int age ,sex;//成员数据
  	int health;
	int damage;
  	int doAttack(){//成员函数
      return damage + health;
    }
};
int main(){
	Cat cat1;//使用Cat类作为模板实例化Cat1对象
	cat1.doAttack();//访问语法:对象.要访问的成员名
} 

封装的意义2:

将属性和行为用权限控制,将数据和函数写在不同的权限下面,加以控制

权限有三种:public、protected、private

public           类内可以访问   类外不可访问

protected     类内可以访问   类外不可以访问   子类对象不可以访问

private         类内可以访问   类外不可以访问   子类对象不可以访问

Caution:上述意味着保护和私有成员只能通过公共权限里的函数作为与类外交流的窗口

要是公共权限里没写函数作为接口,或者是作接口的函数没在公共权限里,那保护成员和私有成员就没有存在意义了(无法进行访问或交互的数据是死数据)

类权限语法:

class 类名public : 属性/行为; protected : 属性/行为; private : 属性/行为; };

Sample

class Cat {
public:
int age, sex;//成员数据
  int health;
  int damage;
  int doAttack() {//成员函数
    return damage + health;
  }
};
int main() {
Cat cat1;//使用Cat类作为模板实例化Cat1对象
cat1.damage = 13; cat1.health = 24;//给成员数据赋值
cout<<cat1.doAttack();//访问语法:对象.要访问的成员名 
} 

类外访问语法:在main函数中或者其他函数中访问对象内的成员时,需要在成员名前加“ . ”符号(其实就是英文的句号);上面的案例中,main函数中访问cat1对象的doAttack成员函数,就要写成  cat1.doAtack();  访问并修改cat1对象中成员数据,要写成  cat1.damage = 10; 但是在类内,比如说编写成员函数,成员函数体内就不需要这种特殊语法,直接写名称即可

    illustration: 封面by 紺屋鴉江  作者:M1nor- https://www.bilibili.com/read/cv14221269 出处:bilibili

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值