当前位置: 首页 > article >正文

类和对象cpp

一、类和对象的基本概念

1.1结构化程序设计

程序=数据结构+算法

程序是由全局变量以及众多相互调用的函数组成

不足:函数和其操作的数据结构无直观联系

某个数据结构到底有哪些函数可以对它进行操作?某个函数到底是用来操作哪些数据结构

1.2面向对象程序设计

程序=类+类+类.....

归纳属性形成数据结构(多个变量描述事物的属性)

【抽象】归纳事物所能进行的行为形成一个个函数(函数用来操作数据结构)

【封装】将数据结构和操作该数据结构的函数捆绑形成一个“类”

【继承】【多态】

1.3类和对象

eg.写一个程序,输入矩形的长和宽,输出面积和周长

分析:矩形用一个类表示,属性是长和宽,因此需要两个变量分别表示长和宽

可以对矩形进行哪些操作?(设置长宽,算面积,算周长)这三种行为各用一个函数来实现,都会需要用到长和宽两个变量

通过类,可以定义变量。类定义出来的变量,也称为类的实例,就是所说的【对象

类的名字就是用户自定义类型的名字,可以像使用基本类型那样来使用它

<对象的内存分配>和结构变量一样,对象所占用的内存空间大小,等于所有成员变量的大小之和

(对齐特殊情况另外讨论)(对象只包含成员变量,不包含成员函数)

<对象间的运算>和结构变量一样,对象之间可以用“=”进行赋值,但不能用“==”“!=”进行比较,除非这些运算符经过了【重载】

1.4类的使用方法

【使用类的成员变量和成员函数】

用法1:对象名.成员名

用法2:指针->成员名

用法3:引用名.成员名

1.5类的成员函数定义

【类的成员函数和类的定义分开写】

(截到人脸郭老师orz

【注意这里的::表示不是全局函数,而是一个类的成员函数】

1.6类成员的可访问范围

如果某个成员前面没有上述关键字,则被默认为私有成员

eg,

1.7私有成员变量的隐藏

设置私有成员的机制叫【隐藏】

隐藏的目的是强制对成员变量的访问一定要通过成员函数进行,那么以后成员变量的类型等属性修改后,只需要更改成员函数即可。否则所有直接访问成员变量的语句都要修改

1.8成员函数的重载 及参数缺省

【成员函数重载的基本规则】
函数名相同:所有重载版本的函数必须有相同的名称。
参数列表不同:至少有一个重载版本的参数列表与其它版本不同。参数列表的不同可以体现在参数的数量、类型或顺序上。
返回类型不作为重载依据:仅返回类型不同不足以构成重载。即如果两个函数除了返回类型外其他都相同,则它们不能被重载。

【函数参数缺省(默认参数)】指的是在函数声明或定义时为函数的某些参数指定一个默认值。如果调用函数时没有提供对应的参数值,则使用默认值。

默认参数的基本规则
只能在声明或定义的一个地方指定默认值:一旦某个参数被赋予了默认值,那么它后面的所有参数也必须要有默认值。
从右向左进行赋值:默认参数必须从右向左开始设置,即如果一个参数具有默认值,那么其右侧的所有参数也必须具有默认值。
作用域问题:默认参数只在函数调用时起作用,并且默认值是在编译时期确定的。

1.9构造函数

1.9.1基本概念:

1)成员函数的一种,名字与类名相同,可以有参数,但不可以有返回值(void也不行)

2)作用是对 【对象】进行初始化给成员变量赋初值

3)如果定义类时没写构造函数,则编译器生成一个默认的无参数的构造函数(默认构造函数无参数,不做任何操作

4)对象生成时构造函数自动被调用,对象一旦生成,就再也不能在其上执行构造函数

5)一个类可以有多个构造函数


1.9.2构造函数的重载

1.9.3构造函数在数组中的应用

1.10复制构造函数


http://www.kler.cn/a/610434.html

相关文章:

  • 基于springboot+vue的北部湾地区助农平台
  • 深入解析 JVM 内存区域及核心概念
  • python中的面对对象
  • 鸿蒙开发:openCustomDialog关闭指定Dialog
  • docker中间件部署
  • 基于Flask的智能天气助手系统设计
  • wms窗口/多窗口/自由窗口systemui侧边栏手势退出实战-学员作业
  • 往期项目shader着色器实践效果应用合集
  • 【大模型基础_毛玉仁】3.4 Prompt 技巧
  • 31天Python入门——第15天:日志记录
  • Java.util包之Java.util.List接口
  • LeetCode算法题(Go语言实现)_12
  • Rust 与 FFmpeg 实现视频水印添加:技术解析与应用实践
  • WPF Binding Path与不带Path的区别
  • 华鲲振宇天工TG225 B1国产服务器试装openEuler22.03 -SP4系统
  • 存储服务器是指什么
  • 深入理解操作系统基础文件I/O:从系统调用到底层实现
  • 一款可查看手机详细配置信息的小工具,简单直观,自动识别硬件信息
  • 19 数码管的动态显示
  • 可视化工具TensorBoard