![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C++
Joyce_JTR
码农
展开
-
[lesson65]C++中的异常处理(下)
catch中捕获的异常可以被重新解释后抛出工程开发中使用这样的方式统一异常类型异常的类型可以是自定义类类型对于类类型的异常的匹配依旧是至上而下严格匹配赋值兼容性原则在异常匹配中依然适用一般而言匹配子类异常的catch放在上部匹配父类异常的catch放在下部在工程中会定义一系列的异常类每个类代表工程中可能出现的一种异常类型代码复用时可能需要重解释不同的异常类在定义catch语句块时推荐使用引用作为参数C++标准库中提供了实用异常类族标准库中的异常都是从。原创 2024-05-07 20:50:55 · 308 阅读 · 0 评论 -
[lesson64]C++中的异常处理(上)
C++内置了一场处理的语法元素try…catch…try语句处理正常代码逻辑catch语句处理异常情况try语句中的异常由对应的catch语句处理C++通过throw语句抛出异常信息C++异常处理分析throwcatch能够处理异常无法处理异常停止执行同一个try语句可以跟上多个catch语句catch不同类型的异常catchtrycatch(…)catch一次异常处理匹配规则。原创 2024-05-07 20:49:33 · 265 阅读 · 0 评论 -
[lesson63]C语言异常处理
异常的概念异常(Exception)BugBug是程序中的错误运行时产生除0的情况需要打开的外部文件不存在数组访问时越界使用野指针堆数组使用结束后未释放选择排序无法处理长度为0的数组C语言经典处理方式:缺陷难以理解其用法valid通过setjmp()和longjmp()进行优化缺陷必然涉及到使用全局变量本质还是if…else…异常处理方式。原创 2024-05-07 20:48:01 · 328 阅读 · 0 评论 -
[lesson62]单例类模板
必须对外隐藏构造函数private空值:创建对象,并用instance标记非空值:返回instance标记的对象存在的问题将单例模式相关的代码抽取出来。原创 2024-05-07 20:46:29 · 445 阅读 · 0 评论 -
[lesson61]智能指针类模板
智能指针最重要的类模板之一自动内存管理很大程度上auto_ptr生命周期结束时只能指向堆对象(变量)不能指向同一片堆空间QPointer引入计数型智能指针可以被自由的拷贝和赋值当引用计数为0时才删除指向的对象。原创 2024-05-07 20:45:49 · 299 阅读 · 0 评论 -
[lesson60]数组类模板
模板参数可以是数值型参数(非类型参数)数值型模板参数的限制变量浮点数类对象本质:模板参数是在编译阶段被处理的单元,因此,在编译阶段必须准确无误的唯一确定。原创 2024-04-25 01:12:44 · 393 阅读 · 0 评论 -
[lesson59]类模板深度剖析
类模板可以定义任意多个不同的类型参数类模板可以被特化特定实现部分类型参数分开实现类模板类模板的特化类型部分特化完全特化类模板特化注意事项模板的分开实现使用方式是统一的。原创 2024-04-25 01:03:22 · 339 阅读 · 0 评论 -
[lesson58]类模板的概念和意义
一些类主要用于存储和组织数据元素类中数据组织的方式和数据元素的具体类型无关如:数组类、链表类、Stack类、Queue类等C++中将模板的思想应用于类,使得类的实现不关注数据元素的具体类型,而只关注类所需要实现的功能。C++中的类模板templatetypenameT泛指类型 T类模板的应用无法自动推导Type声明的泛指类型T可以出现在类模板的任意地方编译器对类模板的处理方式和函数模板相同产生不同的类在声明的地方对类模板代码本身进行编译在使用的地方对参数替换后的代码进行编译。原创 2024-04-25 00:41:58 · 291 阅读 · 0 评论 -
[lesson57]深入理解函数模板
产生不同的函数对函数模板进行两次编译对模板代码本身进行编译对参数替换后的代码进行编译不允许隐式类型转换自动推导类型时,必须严格匹配。原创 2024-04-25 00:27:12 · 133 阅读 · 0 评论 -
[lesson56]函数模板的概念和意义
定义宏代码块代码复用缺少类型检查定义函数真正的函数调用无法代码复用。原创 2024-04-25 00:11:23 · 199 阅读 · 0 评论 -
[lesson55]经典问题解析四
newmallocnewC++的一部分mallocnew类型位单位mallocnewmalloc所有C++编译器中都被支持触发构造函数的对象的创建只能使用new不适合面向对象开发deletefree所有C++编译器中都被支持触发析构函数对象的销毁只能使用delete不适合面向对象开发。原创 2024-04-24 23:56:32 · 283 阅读 · 0 评论 -
[lesson54]被遗弃的多重继承(下)
多重继承可能产生多个虚函数表。原创 2024-04-24 23:34:47 · 209 阅读 · 0 评论 -
[lesson53]被遗弃的多重继承(上)
C++支持编写多重继承的代码拥有多个父类所有父类的所有父类的当做任意父类对象多重继承的语法规则。原创 2024-04-23 23:55:23 · 272 阅读 · 0 评论 -
[lesson51]C++中的抽象类和接口
C++中的抽象类和接口什么是抽象类?面相对象中的抽象概念面向对象中的抽象类可用于表现现实世界中的抽象概念是一种只能定义类型,而不能产生对象的类只能被继承并重写相关函数直接特征是相关函数没有完整的实现Shape是现实世界中各种图形的抽象概念因此:程序中必须能够反映抽象的图形程序中通过抽象类表示图形的概念抽象类不能创建对象,只能用于继承抽象类与纯虚函数C++语言中没有抽象类的概念C++中通过纯虚函数实现抽象类纯虚函数是指只定义原型的成员原创 2024-04-23 23:44:10 · 147 阅读 · 0 评论 -
[lesson51]C++对象模型分析(下)
在C++中编译器的内部类可以理解为结构体子类是由父类成员叠加子类新成员得到的。原创 2024-04-23 23:16:01 · 289 阅读 · 0 评论 -
[lesson50]C++对象模型分析(上)
class是一种特殊的structclassclassstructclass成员函数成员变量独立的共享值得思考的问题。原创 2024-04-23 22:50:07 · 301 阅读 · 0 评论 -
[lesson49]多态的概念和意义
父类中被重写的函数依然会继承给子类子类中重写的函数将覆盖父类中的函数通过作用域分辨符::)访问父类中的同名成员。原创 2024-04-23 22:33:55 · 435 阅读 · 0 评论 -
[lesson48]同名覆盖引发的问题
兼容性直接赋值父类指针直接指向父类引用直接引用退化为父类对象只能访问直接访问覆盖。原创 2024-04-22 22:12:30 · 454 阅读 · 0 评论 -
[lesson47]父子间的冲突
可以定义同名成员隐藏父类中的同名成员同名成员依然存在于子类中作用域分辨符。原创 2024-04-22 21:56:05 · 402 阅读 · 0 评论 -
[lesson46]继承中的构造与析构
子类中可以定义构造函数子类构造函数初始化列表赋值的方式调用父类构造函数父类构造函数在子类中的调用方式默认调用无参构造函数使用默认参数的构造函数显示调用初始化列表进行调用所有父类构造函数的调用。原创 2024-04-22 21:32:14 · 571 阅读 · 0 评论 -
[lesson45]不同的继承方式
public保持原有的访问级别private变为私有成员protected公有成员变为保护成员。原创 2024-04-22 20:34:39 · 530 阅读 · 0 评论 -
[lesson44]继承中的访问级别
面向对象中的访问级别不只是public和privateprotected修饰的成员不能被外界所访问protected使得子类能够访问父类的成员protected关键字是为了继承而专门设计的没有protected就无法完成真正意义上的代码复用。原创 2024-04-22 20:17:24 · 696 阅读 · 0 评论 -
[lesson43]继承的概念和意义
其他类的对象当前类的成员生命期相同用法上完全一致。原创 2024-04-19 21:58:22 · 436 阅读 · 0 评论 -
[lesson42]类型转换函数(下)
C++类中可以定义类型转换函数类型转换函数用于将类对象转换成其他类型语法规则:类型转换函数转换构造函数将对象转换为其他类型隐式的使用无法抑制TypetoType。原创 2024-04-19 21:41:32 · 173 阅读 · 0 评论 -
[lesson41]类型转换函数(上)
标准数据类型之间会进行隐式的类型安全转换。原创 2024-04-18 22:10:14 · 345 阅读 · 0 评论 -
[lesson40]前置操作符和后置操作符
对代码进行优化更加高效丢失了C/C++的原生语义不可能还原C/C++程序。原创 2024-04-18 21:46:35 · 220 阅读 · 0 评论 -
[lesson39]逗号操作符的分析
逗号操作符()可以构成逗号表达式将多个子表达式连接成为一个表达式最后一个子表达式的值前N-1个子表达式可以没有返回值从左向右的顺序。原创 2024-04-17 22:51:18 · 354 阅读 · 0 评论 -
[lesson38]逻辑操作符的陷阱
truefalse不用完全计算就能确定最终值truefalse。原创 2024-04-17 22:35:32 · 297 阅读 · 0 评论 -
[lesson37]智能指针分析
臭名昭著的bug用完后不归还没有垃圾回收无法控制。原创 2024-04-16 22:57:22 · 488 阅读 · 0 评论 -
[lesson36]经典问题解析三
什么时候需要重载赋值操作符?编译器是否提供默认的赋值操作?编译器为每个类默认重载了赋值操作符默认的赋值操作符仅完成浅拷贝当需要进行深拷贝时必须重载赋值操作符赋值操作符与拷贝构造函数有相同的存在意义问题分析一般性原则重载赋值操作符,必然需要实现深拷贝!!!原创 2024-04-16 22:44:46 · 240 阅读 · 0 评论 -
[lesson35]函数对象分析
编写一个函数每调用一次返回一个值函数可根据需要重复使用。原创 2024-04-15 23:31:28 · 297 阅读 · 0 评论 -
[lesson34]数组操作符的重载
string类最大限度的考虑了C字符串的兼容性可以按照使用C字符串的方式使用string对象。原创 2024-04-15 23:11:28 · 514 阅读 · 0 评论 -
[lesson33]C++中的字符串类
不支持字符串字符数组一组函数不支持无法获得字符串类型。原创 2024-04-15 22:57:55 · 234 阅读 · 0 评论 -
[lesson32]初探C++标准库
C++标准库并不是C++语言的一部分C++标准库是由类库和函数库组成的集合C++标准库中定义的类和对象都位于std命名空间中C++标准库的头文件都不带.h后缀C++标准库涵盖了C库的功能C++编译环境的组成C++标准库预定义了多数常用的数据结构。原创 2024-04-15 22:33:25 · 192 阅读 · 1 评论 -
[lesson31]完善的复数类
复数类应该具有的操作运算比较赋值求模利用操作符重载复数实数运算方式复数实数比较方式。原创 2024-04-15 22:23:11 · 238 阅读 · 0 评论 -
[lesson30]操作符重载的概念
C++中的重载能够扩展操作符的功能操作符的重载以函数的方式进行特殊形式的通过operator关键字可以定义特殊的函数operator的本质是通过函数重载操作符语法:可以将操作符重载函数定义为类的成员函数左操作数不需要依赖友元编译器优先在成员函数中寻找操作符重载函数。原创 2024-04-15 22:03:12 · 495 阅读 · 0 评论 -
[lesson29]类中的函数重载
本质为相互独立的不同函数函数名函数参数无法函数名入口地址必然发生在同一个作用域中。原创 2024-04-15 21:50:55 · 211 阅读 · 0 评论 -
[lesson28]友元的尴尬能力
友元一种关系函数与类之间类与类之间单项的不能传递。原创 2024-04-15 20:59:21 · 369 阅读 · 0 评论 -
[lesson27]二阶构造模式
构造函数初始化与类同名并且没有返回值自动被调用。原创 2024-04-14 10:32:39 · 152 阅读 · 0 评论 -
[lesson26]类的静态成员函数
在C++中可以定义静态成员函数特殊的成员函数属于整个类所有通过类名直接访问通过对象名访问静态成员函数的定义static静态成员函数vs普通成员函数。原创 2024-04-14 10:12:53 · 132 阅读 · 0 评论