ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

【C++语法地图】类与对象-封装

2022-01-14 09:06:37  阅读:128  来源: 互联网

标签:封装 函数 访问 int 成员 C++ 语法 cat1 对象


  • 类的封装

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

标签:封装,函数,访问,int,成员,C++,语法,cat1,对象
来源: https://blog.csdn.net/M1nor/article/details/122486702

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有