
C++
文章平均质量分 95
学习C++
GG_Bond21
关注回关,大家多多关照
展开
-
类和对象(一)
在C语言中,结构体中只能定义变量,但在C++中,结构体内不仅可以定义变量,还可以定义函数//成员变量int a;double b;//成员函数但在C++中,更喜欢使用class来代替struct//类体:由成员变量和成员函数组成//注意后面的分号定义方式一声明和定义全部放在类体中。成员函数若在类中定义,编译器可能会将其当成内联函数处理定义方式二声明放在头文件(.h)中,定义放在源文件(.cpp)中。原创 2023-07-14 16:07:06 · 387 阅读 · 0 评论 -
类和对象(二)
既然在不写的情况下,编译器会自动生成一个构造函数,那就没有必要写构造函数了吗?这个想法是。原创 2023-07-14 22:02:53 · 540 阅读 · 0 评论 -
类和对象(三)
在创建对象时,编译器会通过调用构造函数,给对象中的各个成员变量一个合适的初始值虽然通过调用上述的构造函数后,对象中的每个成员变量都有了一个初始值,但是构造函数中的语句只能将其称为赋初值,不能称为初始化。因为初始化只能初始化一次,而构造函数体内可以进行多次赋值。原创 2023-07-15 18:28:52 · 459 阅读 · 0 评论 -
内存管理详解
工程前期良好的设计规范,养成良好的编码规范,申请的内存空间记着匹配的去释放原创 2023-01-13 12:30:00 · 7516 阅读 · 15 评论 -
深入浅出继承
在继承中,父类也称为基类,子类是由基类派生而来的,所以子类又称为派生类。原创 2023-11-06 18:06:25 · 229 阅读 · 0 评论 -
菱形虚拟继承对象内存模型详解
C++语言作为编程语言老大哥(也是第一个吃螃蟹的)无法避免的的踩中了这个大坑。后来的一些面向对象编程语言也是吸取C++的经验,取消了多继承的语法,如Java等。原创 2022-10-16 14:42:58 · 1041 阅读 · 18 评论 -
深入浅出多态
对多态进行深入浅出的详解,真正理解其原理原创 2022-10-28 10:05:05 · 821 阅读 · 18 评论 -
模板技术详解
1. 模板复用了代码,节省资源,更快的迭代开发,C++的标准模板库(STL)因此而产生2. 增强了代码的灵活性1. 模板会导致代码膨胀问题,也会导致编译时间变长2. 出现模板编译错误时,错误信息非常凌乱,不易定位错误。原创 2023-01-14 12:13:45 · 7947 阅读 · 15 评论 -
异常机制与体系
实际使用中很多公司都会自定义自己的异常体系进行规范的异常管理,因为一个项目中如果大家随意抛异常,那么外层的调用者就极难进行捕获,所以实际中都会定义一套继承的规范体系。这样抛出的都是继承的派生类对象,捕获一个基类即可。原创 2023-01-04 11:30:00 · 1327 阅读 · 13 评论 -
右值引用与移动语义
传统的C++语法中就有引用的语法,而C++11中新增了的右值引用语法特性,所以我们称之前学习的引用为左值引用。但无论左值引用还是右值引用,其实都是给对象取别名。原创 2022-12-28 22:21:58 · 8037 阅读 · 13 评论 -
lambda表达式、包装器
lambda表达式是一个匿名对象,用于创建匿名的函数对象,以简化编程工作。当lambda表达式有捕获变量时(即这个对象有自己的数据)就形成了闭包。lambda表达式的类型在C++11中被称为"闭包类型",每一个lambda表达式会产生一个临时对象(右值)。利用lambda表达式即可解决上述问题。原创 2023-01-01 16:59:09 · 1818 阅读 · 13 评论 -
(强制)类型转换方法
强制类型转换关闭或挂起了正常的类型检查。每次使用强制类型转换前,程序员应该仔细考虑是否还有其他不同的方法达到同一目的,若非强制类型转换不可,则应限制强制转换值的作用域,以减少发生错误的机会。强烈建议:避免使用强制类型转换,若需使用即使用C++中的强制类型转换(更加安全)。原创 2023-01-08 09:00:00 · 3407 阅读 · 16 评论 -
C++多线程
在C++11之前,涉及到多线程问题,都是和平台相关的,比如Windows和Linux下有各自的接口,这使得代码的可移植性较差。C++11中最重要的特性就是对线程进行了支持,使得C++在并行编程时不需要依赖第三方库,而且在原子操作中还引入了原子类的概念原创 2023-03-18 16:00:54 · 867 阅读 · 5 评论 -
特殊类的设计
特殊类的设计原创 2023-03-21 00:10:08 · 191 阅读 · 1 评论 -
C++11智能指针
使用智能指针是解决内存泄露问题的良好手段执行上述代码时,若用户输入的除数为0,那么Div()函数中就会抛出异常,这时程序的执行流会直接跳转到主函数中的catch块中执行,最终导致func()函数中申请的内存资源没有得到释放利用异常的重新捕获解决对于这种情况,可以在func()函数中先对Div()函数中抛出的异常进行捕获,捕获后先将之前申请的内存资源释放,然后再将异常重新抛出但这种方式并完全不可靠,有时可能会疏忽一些异常情况利用智能指针解决代码中将申请到的内存空间交给了一个SmartPtr对象进行管理。原创 2023-03-21 21:36:21 · 887 阅读 · 4 评论 -
STL空间配置器框架分析
空间配置器是为各个容器高效的管理空间的。虽然在常规使用STL时,可能用不到它,但站在学习研究的角度,学习它的实现原理对我们有很大的帮助。原创 2023-01-10 11:05:33 · 6522 阅读 · 14 评论