【C++语法地图】类与对象-封装
2022/1/14 9:33:50
本文主要是介绍【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
这篇关于【C++语法地图】类与对象-封装的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2025-01-11国产医疗级心电ECG采集处理模块
- 2025-01-10Rakuten 乐天积分系统从 Cassandra 到 TiDB 的选型与实战
- 2025-01-09CMS内容管理系统是什么?如何选择适合你的平台?
- 2025-01-08CCPM如何缩短项目周期并降低风险?
- 2025-01-08Omnivore 替代品 Readeck 安装与使用教程
- 2025-01-07Cursor 收费太贵?3分钟教你接入超低价 DeepSeek-V3,代码质量逼近 Claude 3.5
- 2025-01-06PingCAP 连续两年入选 Gartner 云数据库管理系统魔力象限“荣誉提及”
- 2025-01-05Easysearch 可搜索快照功能,看这篇就够了
- 2025-01-04BOT+EPC模式在基础设施项目中的应用与优势
- 2025-01-03用LangChain构建会检索和搜索的智能聊天机器人指南