0


C++类和对象基础知识详解

1.对象(object)

1.一切皆是对象。如下图:
对象

  • ·女人是一个对象
  • ·鞋子是一个对象
  • ·包包是一个对象
  • ·衣服是一个对象
  • ·裤子是一个对象
  • ·手链是一个对象

2.对象由对象组成.

这里人这个对象,由鞋子、包包、衣服、 裤子、手链等对象组成。
3.每个对象都有:

  1. a)数据(描述对象的属性)
  2. b)函数(行为操作代码)图示

2.类(class)

  1. ·具有相同属性和行为的对象,我们可以把它抽象为类。
  2. ·类是对象的抽象
  3. ·对象是类的特例 . 汽车类

3.面向对象的程序设计(OOP)

·面向过程的程序设计(Process oriented programming)
在面向过程时,我们重点围绕功能,用一个函数去实现一个功能。

·面向对象的程序设计(Object oriented programming)
在面向对象时,我们重点去描述对象的数据和功能。

a)设计所需的各种类。
b)定义各种各样的对象。
c)向相关的对象发送消息,完成具体的任务。

4.类的声明和对象的定义

1.设计类
**关键字

class

**
在这里插入图片描述

  • ·数据成员

在这里插入图片描述

  • ·成员函数在这里插入图片描述
  • 访问权限

**

private

–私有的 私有的成员只能在类的内部访问

public

–公有的 公有的成员才可以在类的外部使用

protected

–受保护的 先放一放。继承**
在这里插入图片描述

为了考虑到

封装和信息隐藏

,我们一般的使用原则是:
数据成员 都用private
成员函数 都用public

  • ·更加常用的方式

1.只在类的内部声明数据成员和成员函数。
2.在类的外部定义类的成员函数。
3.记得加上类的作用域。

在这里插入图片描述

class和struct的区别

**class 的默认权限是

private

**
**struct的默认权限是

public

**

2.定义对象

·先声明类 再定义对象
在这里插入图片描述

·声明类的同时,定义对象
在这里插入图片描述

·省略类名 直接定义对象
在这里插入图片描述

3.访问对象的函数

对象名.函数名;

在这里插入图片描述
4.命名规范
·类名首字母大写
·对象名首字母小写

**5.并非所有的成员函数都必须是

公有的

!**
如果一个成员函数,它只需要在类的内部使用,也就是这个函数只被类中的其他成员函数调用,而不需要再类的外部使用,那我们将它作为私有的成员函数。

5.类的成员函数

1.访问权限:
·一般将需要被外界调用的成员函数指定为public,这是类对外的接口。
·若函数只在类的内部调用,用来完成其他成员函数的功能,应该指定为private。
·成员函数可以访问本类中任何的成员,无论他是私有的还是公有的。在这里插入图片描述
2.inline成员函数 内置函数
内联函数:
·使用内联函数节省时间,增加目标程序的长度。
·将规模很小,使用频繁的函数声明为内联函数。
·内联函数不能包含复杂的循环语句和switch语句。
·inline只是程序员对编译系统的建议。
inline成员函数:
·在类的内部直接定义的函数将被隐式地指定为内联函数。
·在类的外部显式地声明内联函数。声明 定义 inline

对象的存储方式:

  1. ·各个数据分开存储。
  2. ·成员函数共享内存。
  3. ·跟访问权限无关。在这里插入图片描述6.访问对象成员****·私有成员只能在成员函数中引用。直接使用成员名即可。 ·公有数据成员可以在类外访问public,但是考虑到封装和信息隐藏。不要这样做。 ·公有成员函数可以在类外访问,这是类对外的接口。

1.访问对象中成员的3种方法:
·对象名+成员运算符
·指向对象的指针 + 指向运算符
·对象的引用变量 + 成员运算符

在这里插入图片描述
2.私有数据成员如何访问?
私有数据成员,只能通过

成员函数

访问。
在这里插入图片描述

如果要获取私有数据成员的值。
返回值:
在这里插入图片描述
指针:
在这里插入图片描述
引用:
在这里插入图片描述
这种set和get函数去设置和获取私有数据成员是很多设计者常用的方法。几乎已经成为惯例。
7.类的封装与信息隐藏
函数的原型:
函数的封装性:
1.函数的功能是什么?
2.函数的名字是什么?
3.函数有几个参数?
4.每一个参数的类型是什么?
5.函数的返回值是什么?
函数的内部:
1.采用什么样的计算方法?
2.采用什么样的程序结构?
3.怎样得到计算结果?
4.怎么返回数据?
5.性能如何保证?

这样的话,有些人专注于函数内部的具体实现。有些人则只需要知道函数怎么用就可以了。对于一个开发团队来讲,这样的设计绝对是恰到好处的。

对于类来说也是同样的道理:
**·C++通过类来实现封装性,把数据和跟数据相关的函数封装在类中。
·声明一个类之后,用户只需要调用类的

公用接口

来实现具体的功能—

消息传递

·用户不必关心功能是如何实现的,只需要知道用哪一个函数可以实现什么样的功能–

信息隐藏

·类中被操作的数据是私有的,函数的实现细节是隐蔽的–

私有实现

**类内部细节

补充2个概念:
方法:类的成员函数
消息:对公有成员函数的调用

如果在一个项目开发里面涉及到很多个类,可能几百上千个类,那么类和类之间的关系式错综复杂的,如果在设计这样的程序里面,我要把每一个类里面的细节都搞清楚,这样的认知成本就太高了。而现在有了封装和信息隐藏,在整个团队里面,我们只需要知道类的公用接口就可以了,而不需要知道它的私有实现。分工明确,开发效率高。

面向对象的程序设计特性:
封装性
将数据和相关的代码封装在一个对象中。各个对象之间相对独立,互不干扰。
将对象的数据隐藏,隐藏内部实现的细节,只留下一部分接口。

抽象性
类是对象的抽象,对象是类的特例。

继承性
把最重要的特征,解决软件的重用。

多态性
由继承性产生相关不同的类。不同的对象,对象对同样的消息会做出不一样的反应。

基于对象的程序设计: 封装 抽象
面向对象的程序设计:封装 抽象 继承 多态.

标签: C++

本文转载自: https://blog.csdn.net/weixin_44693071/article/details/118615741
版权归原作者 Technical^Blog 所有, 如有侵权,请联系我们删除。

“C++类和对象基础知识详解”的评论:

还没有评论