当前位置:网站首页>虫子 类和对象 上
虫子 类和对象 上
2022-06-26 13:06:00 【华为云】
类和对象
面向过程和面向对象初步认识
C语言是==面向过程==的,==关注==的是==过程==,分析出求解问题的步骤,通过函数调用逐步解决问题。
C++是==基于面向对象==的,==关注==的是==对象==,将一件事情拆分成不同的对象,靠对象之间的交互完成
类的引入
==C语言中,结构体中只能定义变量,在C++中,结构体内不仅可以定义变量,也可以定义函数==
==比如c语言中定义一个栈==
==而c++中就引入了类 什么叫类呢 类就是定义出一个新的类型==
==类由两部分构成:1.成员变量(属性)2.成员函数(行为)==
==c++中的struct兼容c的所有用法,同时c++中把struct升级成类==
上面类的定义,==在C++中更喜欢用class来代替==
这也就出现了为什么在学校中我们看类的定义不是struct,而是class
类的定义
class A{ //类体:由成员函数和成员变量组成}; //和结构体一样不要把分号忘掉==class==为定义类的==关键字==,==A为类的名字==,=={}中为类的主体==,注意==类定义结束时后面分号==。
类中的元素称为==类的成员==:类中的==数据==称为==类的属性==或者==成员变量==; 类中的==函数==称为==类的方法==或者==成员函数==。
类的两种定义方式
声明和定义全部放在类体中,需要注意:成员函数如果在类中定义,编译器可能会将其当成内联函数处
理。
声明放在.h文件中,类的定义放在.cpp文件中
类的访问限定符及封装
访问限定符
C++实现封装的方式:==用类将对象的属性与方法结合在一块,让对象更加完善,通过访问权限选择性的将其接口提供给外部的用户使用==
==访问限定符说明==
- public修饰的成员在类外可以直接被访问
- protected和private修饰的成员在类外不能直接被访问(此处protected和private是类似的)
- 访问权限作用域从==该访问限定符出现的位置开始直到下一个访问限定符出现时为止==
- class的==默认访问权限为private==,==struct为public==(因为struct要兼容C)
面试题:c++中struct和class的区别是什么
C++需要兼容C语言,所以C++中struct可以当成结构体去使用。另外C++中struct还可以用来定义类。和class是定义类是一样的,区别是==struct的成员默认访问方式是public,class是的成员默认访问方式是private。==
面试题:面向对象三大特性 封装 继承 多态
实际上不止三大特性 比如==抽象 反射==
在类和对象阶段,我们只研究==类的封装特性==,那什么是封装呢?
==封装==:将数据和操作数据的方法进行有机结合,隐藏对象的属性和实现细节,仅对外公开接口来和对象进行交互。
==数据和方法都封装到了类中,管理起来,想给你访问定义成共有,不想给你访问的定义成私有或者保护==
==封装本质上是一种管理==:我们如何管理兵马俑呢?比如如果什么都不管,兵马俑就被随意破坏了。那么我们首先建了一座房子把兵马俑给封装起来。但是我们目的全封装起来,不让别人看。所以我们开放了售票通道,可以买票突破封装在合理的监管机制下进去参观。类也是一样,我们使用类数据和方法都封装到一下。
不想给别人看到的,我们使用protected/private把成员封装起来。开放一些共有的成员函数对成员合理的访问。所以封装本质是一种管理。
边栏推荐
- Here document interaction free and expect automatic interaction
- 免费的机器学习数据集网站(6300+数据集)
- MongoDB系列之适用场景和不适用场景
- Wechat applet -picker component is repackaged and the disabled attribute is added -- below
- CloudCompare——泊松重建
- 遍历指定目录获取当前目录下指定后缀(如txt和ini)的文件名
- 7-2 picking peanuts
- Es common grammar I
- 创建一个自己的跨域代理服务器
- Connection migration for DataGrid configuration
猜你喜欢

【Spark】. Explanation of several icons of scala file in idea

Gurivat sprint Harbour Exchange listed: created “multiple first”, received 900 million yuan Investment from IDG capital

Beifu PLC obtains system time, local time, current time zone and system time zone conversion through program

Tips for using nexys A7 development board resources

MySQL explanation (I)

Basic type of typescript

Beifu PLC realizes zero point power-off hold of absolute value encoder -- use of bias

VTK 圆柱体的生成与渲染

awk工具

Range of types
随机推荐
d的is表达式
mysql配置提高数据插入效率
Detailed practical sharing, two hours of funny videos after work, earning more than 7000 a month
Solutions to the failure of last child and first child styles of wechat applet
[shell] generate strings between specified dates
Wechat applet -picker component is repackaged and the disabled attribute is added -- below
Teacher Li Hang's new book "machine learning methods" is on the market! Purchase link attached
Mongodb series window environment deployment configuration
I have a good word to say, and I admire myself
Pytorch based generation countermeasure Network Practice (7) -- using pytorch to build SGAN (semi supervised GaN) to generate handwritten digits and classify them
Some conclusions about Nan
Jenkins build prompt error: eacces: permission denied
Create your own cross domain proxy server
Range of types
三维向量的夹角
去某东面试遇到并发编程问题:如何安全地中断一个正在运行的线程
Log in to the server using SSH key pair
Nexys A7开发板资源使用技巧
ES6:Map
Beifu PLC realizes data power-off maintenance based on cx5130





