- 博客(97)
- 收藏
- 关注
原创 vscode + cmake + ninja + ARMCC 配置stm32开发环境(调试篇)
修改完成之后,保存,进入debug界面,选择。在创建出来的模板中进行修改和新增内容。其中主要有以下几点进行修改和新增。在vscode插件市场中安装。在debug界面,选择。进行调试,同样也能使用。
2024-08-14 23:42:31
554
原创 vscode + cmake + ninja + ARMCC 配置stm32开发环境(构建篇)
从CMake官网上下载CMake安装包进行安装CMake。安装完成之后,使用cmd查看cmake是否添加进入环境变量。
2024-08-13 11:35:08
998
原创 [lesson65]C++中的异常处理(下)
catch中捕获的异常可以被重新解释后抛出工程开发中使用这样的方式统一异常类型异常的类型可以是自定义类类型对于类类型的异常的匹配依旧是至上而下严格匹配赋值兼容性原则在异常匹配中依然适用一般而言匹配子类异常的catch放在上部匹配父类异常的catch放在下部在工程中会定义一系列的异常类每个类代表工程中可能出现的一种异常类型代码复用时可能需要重解释不同的异常类在定义catch语句块时推荐使用引用作为参数C++标准库中提供了实用异常类族标准库中的异常都是从。
2024-05-07 20:50:55
305
原创 [lesson64]C++中的异常处理(上)
C++内置了一场处理的语法元素try…catch…try语句处理正常代码逻辑catch语句处理异常情况try语句中的异常由对应的catch语句处理C++通过throw语句抛出异常信息C++异常处理分析throwcatch能够处理异常无法处理异常停止执行同一个try语句可以跟上多个catch语句catch不同类型的异常catchtrycatch(…)catch一次异常处理匹配规则。
2024-05-07 20:49:33
264
原创 [lesson63]C语言异常处理
异常的概念异常(Exception)BugBug是程序中的错误运行时产生除0的情况需要打开的外部文件不存在数组访问时越界使用野指针堆数组使用结束后未释放选择排序无法处理长度为0的数组C语言经典处理方式:缺陷难以理解其用法valid通过setjmp()和longjmp()进行优化缺陷必然涉及到使用全局变量本质还是if…else…异常处理方式。
2024-05-07 20:48:01
326
原创 [lesson62]单例类模板
必须对外隐藏构造函数private空值:创建对象,并用instance标记非空值:返回instance标记的对象存在的问题将单例模式相关的代码抽取出来。
2024-05-07 20:46:29
445
原创 [lesson61]智能指针类模板
智能指针最重要的类模板之一自动内存管理很大程度上auto_ptr生命周期结束时只能指向堆对象(变量)不能指向同一片堆空间QPointer引入计数型智能指针可以被自由的拷贝和赋值当引用计数为0时才删除指向的对象。
2024-05-07 20:45:49
298
原创 [lesson60]数组类模板
模板参数可以是数值型参数(非类型参数)数值型模板参数的限制变量浮点数类对象本质:模板参数是在编译阶段被处理的单元,因此,在编译阶段必须准确无误的唯一确定。
2024-04-25 01:12:44
392
原创 [lesson59]类模板深度剖析
类模板可以定义任意多个不同的类型参数类模板可以被特化特定实现部分类型参数分开实现类模板类模板的特化类型部分特化完全特化类模板特化注意事项模板的分开实现使用方式是统一的。
2024-04-25 01:03:22
338
原创 [lesson58]类模板的概念和意义
一些类主要用于存储和组织数据元素类中数据组织的方式和数据元素的具体类型无关如:数组类、链表类、Stack类、Queue类等C++中将模板的思想应用于类,使得类的实现不关注数据元素的具体类型,而只关注类所需要实现的功能。C++中的类模板templatetypenameT泛指类型 T类模板的应用无法自动推导Type声明的泛指类型T可以出现在类模板的任意地方编译器对类模板的处理方式和函数模板相同产生不同的类在声明的地方对类模板代码本身进行编译在使用的地方对参数替换后的代码进行编译。
2024-04-25 00:41:58
290
原创 [lesson57]深入理解函数模板
产生不同的函数对函数模板进行两次编译对模板代码本身进行编译对参数替换后的代码进行编译不允许隐式类型转换自动推导类型时,必须严格匹配。
2024-04-25 00:27:12
132
原创 [lesson55]经典问题解析四
newmallocnewC++的一部分mallocnew类型位单位mallocnewmalloc所有C++编译器中都被支持触发构造函数的对象的创建只能使用new不适合面向对象开发deletefree所有C++编译器中都被支持触发析构函数对象的销毁只能使用delete不适合面向对象开发。
2024-04-24 23:56:32
283
原创 [lesson51]C++中的抽象类和接口
C++中的抽象类和接口什么是抽象类?面相对象中的抽象概念面向对象中的抽象类可用于表现现实世界中的抽象概念是一种只能定义类型,而不能产生对象的类只能被继承并重写相关函数直接特征是相关函数没有完整的实现Shape是现实世界中各种图形的抽象概念因此:程序中必须能够反映抽象的图形程序中通过抽象类表示图形的概念抽象类不能创建对象,只能用于继承抽象类与纯虚函数C++语言中没有抽象类的概念C++中通过纯虚函数实现抽象类纯虚函数是指只定义原型的成员
2024-04-23 23:44:10
146
原创 [lesson50]C++对象模型分析(上)
class是一种特殊的structclassclassstructclass成员函数成员变量独立的共享值得思考的问题。
2024-04-23 22:50:07
300
原创 [lesson49]多态的概念和意义
父类中被重写的函数依然会继承给子类子类中重写的函数将覆盖父类中的函数通过作用域分辨符::)访问父类中的同名成员。
2024-04-23 22:33:55
434
原创 [lesson46]继承中的构造与析构
子类中可以定义构造函数子类构造函数初始化列表赋值的方式调用父类构造函数父类构造函数在子类中的调用方式默认调用无参构造函数使用默认参数的构造函数显示调用初始化列表进行调用所有父类构造函数的调用。
2024-04-22 21:32:14
571
原创 [lesson44]继承中的访问级别
面向对象中的访问级别不只是public和privateprotected修饰的成员不能被外界所访问protected使得子类能够访问父类的成员protected关键字是为了继承而专门设计的没有protected就无法完成真正意义上的代码复用。
2024-04-22 20:17:24
694
原创 [lesson42]类型转换函数(下)
C++类中可以定义类型转换函数类型转换函数用于将类对象转换成其他类型语法规则:类型转换函数转换构造函数将对象转换为其他类型隐式的使用无法抑制TypetoType。
2024-04-19 21:41:32
173
原创 [lesson39]逗号操作符的分析
逗号操作符()可以构成逗号表达式将多个子表达式连接成为一个表达式最后一个子表达式的值前N-1个子表达式可以没有返回值从左向右的顺序。
2024-04-17 22:51:18
354
原创 [lesson36]经典问题解析三
什么时候需要重载赋值操作符?编译器是否提供默认的赋值操作?编译器为每个类默认重载了赋值操作符默认的赋值操作符仅完成浅拷贝当需要进行深拷贝时必须重载赋值操作符赋值操作符与拷贝构造函数有相同的存在意义问题分析一般性原则重载赋值操作符,必然需要实现深拷贝!!!
2024-04-16 22:44:46
240
原创 [lesson32]初探C++标准库
C++标准库并不是C++语言的一部分C++标准库是由类库和函数库组成的集合C++标准库中定义的类和对象都位于std命名空间中C++标准库的头文件都不带.h后缀C++标准库涵盖了C库的功能C++编译环境的组成C++标准库预定义了多数常用的数据结构。
2024-04-15 22:33:25
191
1
原创 [lesson30]操作符重载的概念
C++中的重载能够扩展操作符的功能操作符的重载以函数的方式进行特殊形式的通过operator关键字可以定义特殊的函数operator的本质是通过函数重载操作符语法:可以将操作符重载函数定义为类的成员函数左操作数不需要依赖友元编译器优先在成员函数中寻找操作符重载函数。
2024-04-15 22:03:12
495
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人