OOP笔记
不停---
吹皱一池春水
buting.site
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
OOP 14
OOP14 异常和异常处理 什么是异常 能够正常运行的程序可能存在很多潜在隐患。程序运行时可以检测到的一些非正常情况称为异常(Exception)。如除数为0,数组越界访问,内存空间不够,输入输出不正常(文件找不到、输入数据类型错等)等等 异常是程序错误一种形式 程序中的错误按性质可分为: 语法错误(关键字拼写错、标识符未定义、语句不完整等) 逻辑错误(算法设计有误导致得不到期望结果) 异常(出现是不可避免的,必须加以控制和处理) 异常的抛出,检测,和捕捉 异常抛出、检测和捕获的语法定义如下: 异常抛原创 2020-07-28 20:57:39 · 228 阅读 · 0 评论 -
OOP13
OOP13 泛型编程和模板 什么是泛型编程 所谓泛型编程就是以独立于任何特定类型的方式编写代码,即编写的代码可以用来操纵各种类型的数据 例如,编写一个函数,该函数能对各种数据类型的数组(基本类型数组或对象数组)进行倒序;编写一个类,该类能以链表的形式存储各种相同类型的数据。那么,编写这样一个函数或类就是泛型编程 什么是模板 C++中,模板是泛型编程的基础 模板是创建类或函数的蓝图或公式 模板分为两种类型 -函数模板(Function Template) -类模板(Class Template) 模板并原创 2020-07-28 20:56:58 · 181 阅读 · 0 评论 -
OOP12
OOP12 虚机制与多态 静态编联与动态编联 编联是指计算机程序自身彼此关联的过程,也就是把一个标识符名和一个存储地址联系在一起的过程 静态编联(早绑定,静态绑定)是指在编译阶段完成的编联。支持编译时多态,也称静态多态,即在编译阶段由编译系统根据操作的对象或对象类型确定调用哪个同名函数。函数重载和运算符重载都是静态编联即编译时多态 动态编联(晚绑定,动态绑定)是指在运行阶段完成的编联。支持运行时多态,也称动态多态,在运行阶段临时确定具体调用哪个同名函数。C++通过继承和虚函数实现动态多态 虚函数 虚函原创 2020-07-28 20:56:28 · 230 阅读 · 0 评论 -
OOP 11
OOP11 类的继承 派生和继承 派生是指由已有类创建新类的过程。新类称为派生类或子类,已有类称作基类、父类或超类 继承是指子类保留父类的成员的特性 继承意味着“自动地拥有”,即子类中不必重新定义已在父类中定义过的属性和操作,而是自动地、隐含地拥有其父类的属性和行为 继承具有传递性,派生类也可以作基类 继承体现泛化关系,实现了代码复用 派生类的定义 派生类的声明:class <派生类名>; 派生类的定义格式如下 class <派生类名>:<继承方式> <原创 2020-07-28 20:55:57 · 270 阅读 · 0 评论 -
OOP 09
OOP09 内存管理 C++程序占用的内存区分区 全局、静态数据区:存储全局变量及静态变量 常量数据区:存储程序中的常量字符串等 代码区:存储程序的代码,即程序中各个函数的代码 栈区:存储局部自动变量,如函数中的变量等 堆区:存储动态产生的变量 静态内存管理 由编译器决定内存分配的时机、空间以及内存释放 单个对象 静态内存管理的不足 变量的生存期和作用域不够灵活 例:Time time1(10,20,30); 编译期间确定所使用的内存大小 例:Time times[50]; 数组的大小必须原创 2020-07-28 20:55:26 · 197 阅读 · 0 评论 -
OOP 08
OOP08 运算符重载 为什么运算符重载? C++提供了运算符重载机制,赋予运算符多重含义,使一个运算符同时可以作用于内置数据类型和用户自定义数据类型 运算符重载的限制 运算符重载可以有两种形式,一种是重载为类的成员函数,另一种是重载为全局函数 重载为类的成员函数语法格式为 <返回类型> [<类名>::]operator<运算符>(<形参表>) { <函数体> } operator是进行运算符重载的关键字,后跟一个需原创 2020-07-28 20:54:40 · 172 阅读 · 0 评论 -
OOP 07
OOP07 类与对象 类定义 对象是问题域中一些事物的抽象,是一些属性、操作和方法的封装体,类是对象特征的描述,一个类刻画了一组具有相同特征的对象,类是对同类对象的抽象 从实现角度来说,类是某种自定义数据类型,对象是该类型的变量 与结构体类似,类由若干个成员组成。类可以没有成员,也可以定义多个成员,成员可以是数据(称为数据成员、成员变量)、函数(称为成员函数)或类型 与结构体一样,先定义类型再声明变量(对象) 类定义的一般格式 class <类名> { <访问控制符>:原创 2020-07-28 20:54:08 · 306 阅读 · 0 评论 -
OOP06
OOP06 面向对象程序设计特点 1.更关注数据,而不是过程 2.程序分解成实体对象 3.数据被隐藏在对象中,不可由外部函数访问 4.作用于对象的函数也放于对象中 5.对象间通过发送消息(函数调用)通信 6.程序设计依据自底向上原则 抽象 抽象(Abstraction)是简化复杂的现实问题的途径,就是从众多的事物中抽取出共同的、本质性的特征,舍弃其非本质的特征。例如,苹果、香蕉、酥梨、葡萄、桃子等,它们共同的特征就是水果 抽象包含两个方面:过程抽象、数据抽象 过程抽象就是针对对象的行为特征,如鸟会飞、会跳原创 2020-07-28 20:53:27 · 170 阅读 · 0 评论 -
OOP04
OOP04 指针的使用 ‘*’ 解引用操作符 (dereference operator),可以理解为取变量中存储的地址所指向的内容,也称为间接(引用)操作符。 ‘&’ 取地址/引用操作符(Address or reference operator)可以理解为取变量的地址。 指针的算术运算 1.只有加法和减法。 2.给指针加1时,实际是让指针指向下一个与它的数据类型相同的元素。因此,它所指的数据类型的长度字节数就会被加到指针的数值上。 void* 指针 1.可以保存任何类型对象的地址。 2.表明原创 2020-07-28 20:52:57 · 242 阅读 · 0 评论 -
C++ OOP 01-03
OOP02-C++ 语言基础 C++和C语言比较 1.增加许多新的语言特性 2.支持面向对象程序设计 3.支持泛型程序设计 4.具有功能强大的标准库 5.C++语言是C语言的超集,是一个更好的C main()函数 int main(int argc,char* argv[]) { // ... return 0; } C++ 多文件结构 源文件(定义文件或实现文件) 存放程序的实现,通常文件扩展名为.cpp 头文件 存放程序的声明,通常文件扩展名为.h 多文件结构的好处 1.支持并发协同编程 2.便原创 2020-07-28 20:51:49 · 242 阅读 · 0 评论
分享