导图社区 第十章对象和类
C 自学笔记 第十章对象和类,内容有: 1. 过程性编程和面对对象编程 2. 抽象和类 3. 类的构造函数和析构函数 4. this指针 5. 对象数组 6. 类作用域 7. 抽象数据类型ADT
药理学 第十章肾上腺素受体激动药 主要药物的机理、作用,希望这份脑图对你有帮助。
药理学 第九章胆碱受体阻断药——N胆碱受体阻断药 主要药物的机理、作用,希望这份脑图对你有帮助。
药理学 第八章胆碱受体阻断药——M胆碱受体阻断药 主要药物的机理、作用,希望这份脑图对你有帮助。
社区模板帮助中心,点此进入>>
互联网9大思维
组织架构-单商户商城webAPP 思维导图。
域控上线
python思维导图
css
CSS
计算机操作系统思维导图
计算机组成原理
IMX6UL(A7)
考试学情分析系统
第十章 对象和类
1. 过程性编程和面对对象编程
1. 用户与数据交互的方式(用户接口)
1. 初始化
2. 更新
3. 报告
2. 抽象和类
1. 基本类型
A. 决定数据对象需要的内存数量
B. 决定如何解释内存中的位(不同类型所占的位和转化方式不同)
C. 决定数据对象执行的操作和方法
2. C++中的类
I. 组成
1. 类声明
A. 以数据成员的方式描述数据部分
B. 以成员函数(类方法)的方式描述共有接口
2. 类方法定义
A. 描述如何实现类成员函数
II. 创建一个类
1. 类首字母大写
2. 成员函数
3. 公共部分
4. 私有部分
III. 性质
1. 数据隐藏
A. 使用类对象的程序只能通过类的共有成员函数来访问类的私有成员
B. 公有成员函数是程序和对象的私有成员之间的桥梁
2. 封装
A. 将实现细节和抽象分开
类函数定义与声明放在不同文件中
B. 公有接口表示的是设计的抽象组件(公有接口也可理解为公有函数)
3. 实现类成员函数
1. 性质
A. 定义成员函数时,使用作用域解析符来标识函数所属的类
B. 类方法可访问类的private组件
非成员函数将禁止访问私有成员
友元函数除外
2. 内联方法
定义位于类声明的函数将自动称为内联函数
放在头文件中
直接定义
使用inline
3. 类方法使用哪个对象
调用成员函数时,它将使用被用来调用它的对象的数据成员
每个类对象都有自己的成员,但每种类方法只有一种
4. 使用类
运用 成员运算符 . 来访问成员函数
通过成员函数使用类
4. 小结
类设计
1. 提供类声明
数据成员
通常为私有部分
数据隐藏
函数成员
通常为公有部分
公有接口
2. 实现类成员函数
运用作用域解析运算符 ::
3. 类的构造函数和析构函数
1. 定义与声明构造函数
注意构造函数,函数名前不加void
构造函数使用类名
2. 使用构造函数
分类
1. 显式调用
Stock food = Stock( “World Cabbage ”,250 ,1.25 );
2. 隐式调用
Stock food( “World Cabbage ”,250 ,1.25 );
3. 指针new
Stock* p =new Stock( “World Cabbage ”,250 ,1.25 );
3. 默认构造函数
定义
未提供显式初始化时,用来创建对象的构造函数
若没有定义构造函数,C++将自动提供默认构造函数
方式
1. 给已创建的构造函数提供默认值
2. 创造另外一个没有参数的构造函数
1. Stock first;
2. Stock first = Stock ();
3. Stock* prelief = new Stock ;
4. 析构函数
1. 完成清理工作
2. ~Stock();
一般定义为空
或可加入一些输出来提示类已删除
5. 改进stock类
1. 注意赋值与初始化的不同
Stock stock2 = Stock("Boffo Objects" , 2 , 2.0 );
2. 赋值
stock1 = Stock("Nifty Foods" , 10 , 50.0);
3. 不同点
初始化直接创建相应类型的对象
而赋值将创建相应类型的临时对象,并将其复制到返回值,比初始化效率低
2. 列表初始化
了解——可以用{}代替()
3. const成员函数
void Stock::show ( ) const\
保证函数不会调用类对象
6. 小结
1. 如果构造函数只有一个参数
特殊形式
4. this指针
1. 定义
指向调用函数的对象本身的指针
5. 对象数组
1. 对象数组使用标准格式对数组进行初始化
2. 用花括号括起的,用逗号分隔的值的列表
6. 类作用域
在类中定义的名称(如类数据名和类成员函数名)的作用域为整个类
2. 内容
在类声明或成员函数定义中,可以使用未修饰的成员名称
在其他情况下,必须使用
1. 直接成员运算符 .
2. 间接成员运算符 ->
3. 作用域解析运算符 : :
3. 作用域为类的常量
常见错误
不能在类声明中写 const int x = 10; 之类的语句
因为声明类只是描述了对象的形式,而没有创建对象,因此在创建对象前,将没有用于储存值的空间
解决办法
1. 创建枚举类型enum
enum {Months = 12};
2. 使用静态关键字static
static const int Months = 12;
7. 抽象数据类型ADT
1. P305