摘要:#### 一、异常处理 - 程序的错误大致分三种:语法错误、逻辑错误、运行时错误 - 运行时错误发生在程序运行期间发生的问题:除零、内存分配失败、非法访问内存、文件不存在、数组越界 - C++的异常处理机制就是为了解决运行时错误 - C语言中运行时错误如果不管,系统会执行默认操作,可能会让程序终止产
阅读全文
摘要:### 一、常规指针的缺点 - 当一个常规指针离开了作用域时,只有该指针变量本身占用的内存空间(4/8字节)会被释放,而它指向的内存空间不会自动释放,当free\delete\delete[]语句忘记执行或者无法执行,形成内存泄漏 ### 二、智能指针的优点 - 智能指针是一个封装了常规指针的类类型
阅读全文
摘要:### 一、类型信息运算符 #### typeid 在C++中typeid可以获取数据的类型,但是需要加头文件typeinfo ```c++ find /usr/include -name typeinfo ``` 1. typeid是运算符,执行运算符函数,执行的返回类型是type_info类类型
阅读全文
摘要:### 一、C++ I/O流 头文件:fstream C++把对文件的读写操作都封装在以下的类中: | 类名 | 功能 | 继承 | 相当于 | |: :|: :|: :|: :| | **ofstream** | 对文件的写操作,默认以只写方式O_WRONLY\|O_CREAT\|O_TRUNC打
阅读全文
摘要:### 一、什么是多态 - 指的是一条指令可以有多种形态,当调用一个指令时,它能够根据参数、环境的不同作出不同的操作,这种情况称为多态 - C++中根据确定指令具体操作的时间划分多态: 编译时多态、运行时多态 ### 二、两种多态 - 编译时多态: 当调用函数重载版本时,编译器会根据参数的类型、个数
阅读全文
摘要:### 一、什么是继承 1. 当遇到问题时,先查看现有的类是否能解决一部分问题,如果有则继承该类,并在此基础上扩展以此解决问题,从而缩短解决问题的时间(代码复用) 2. 当遇到一个大而复杂的问题时,可以把大问题拆分成若干个不同的小问题,然后为每个小问题设计一个类来解决,最后通过继承的方式把这些类汇总
阅读全文
摘要:### 运算符函数 在C++中会把运算符当做函数处理,一个表达式,其实可能调用了很多运算符函数来完成计算,这种特性对内建类型没有用,但是对于自建类型而言,通过设计运算符函数能够进行个性化运算,以此提高代码的可读性、易用性,例如string类 ##### Ⅰ.运算符函数的格式: '#'表示运算符,'O
阅读全文
摘要:### 一、静态成员 ##### Ⅰ.什么是静态成员: 被static修饰的成员变量和成员函数就叫静态成员 ##### Ⅱ.普通成员的特点: - 成员变量:每个类对象中都有一份属于自己的成员变量,相互之间没有关联、独立的 - 成员函数:隐藏着一个this指针,接收调用者的地址用于区分调用者 ####
阅读全文
摘要:### 一、对象的创建和销毁过程 ##### Ⅰ.对象的创建过程 1. 给对象划分内存空间 2. 执行初始化列表 ①根有参构造据继承表的顺序调用父类的无参构造或者 ```tex 通过:父类名(val) 调用父类的有参构造 ``` ②根据成员变量的定义顺序调用类类型成员的无参构造或有参构造 ```te
阅读全文
摘要:### 一、函数重载 1、什么是函数重载? - 在同一作用域下,函数名相同,参数列表不同的函数构成重载关系 - 函数重载与返回值类型、参数名无关 - 与作用域是否相同,以及参数列表的数量、参数类型、常属性不同等有关 2、C++是如何实现函数重载的? 通过g++ -S 生成汇编代码可知,编译器会把函数
阅读全文
摘要:### 一、C++介绍 **本贾尼.斯特劳斯特卢普**,于1979年在**贝尔实验室**负责分析UNIX系统内核流量的分布情况时,特别希望有一种更加模块化的工具,于1979.10开始着手研发一款新的编程语言,在C语言的基础上增加了面向对象的机制,也就是C++,**1983**年完成了C++的第一个版
阅读全文