IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> C++知识库 -> C++类和对象基础知识详解 -> 正文阅读

[C++知识库]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++知识库 最新文章
【C++】友元、嵌套类、异常、RTTI、类型转换
通讯录的思路与实现(C语言)
C++PrimerPlus 第七章 函数-C++的编程模块(
Problem C: 算法9-9~9-12:平衡二叉树的基本
MSVC C++ UTF-8编程
C++进阶 多态原理
简单string类c++实现
我的年度总结
【C语言】以深厚地基筑伟岸高楼-基础篇(六
c语言常见错误合集
上一篇文章      下一篇文章      查看所有文章
加:2021-07-10 14:21:50  更:2021-07-10 14:22:26 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/4 2:24:43-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码