夯实C++基础
文章平均质量分 76
听说西佳佳难得很
要学的有好多……
是自己的功课,在这里没有必要欺骗自己,要好好弄懂在记录的知识点。感受到孤单的时候也要向前,努力成为最完善,最有力,最强大的自己。
展开
-
6.异常的一些知识
在C++之前,处理异常的基本手段是“错误码”,函数执行后需要见擦汗返回值或者全局的errno,如果出错了就执行另外一段代码处理错误异常是针对错误码的缺陷设计(和正常业务逻辑代码混在一起,可以被忽略),有三个特点:C++ 引入异常处理机制,其基本思想是:函数 A 在执行过程中发现异常时可以不加处理,而只是“拋出一个异常”给 A 的调用者,假定为函数 B。拋出异常而不加处理会导致函数 A 立即中止,在这种情况下,函数 B 可以选择捕获 A 拋出的异常进行处理,也可以选择置之不理。如果置之不理,这个异常就会被拋原创 2022-06-06 23:42:29 · 340 阅读 · 0 评论 -
5. 智能指针(等后续
指针本质上是一个内存地址索引,代表了一块内存区域,能够直接读写内存;因为指针完全映射了计算机硬件,所以操作效率高,是C/C++高效的根源。但是指针也会产生访问无效数据、指针越界或者内存分配不及时等导致的运行错误,内存泄漏,资源丢失等一系列问题。RAII (Resource Acquisition is Initialization )资源获取即初始化,将裸指针包装起来,在构造函数里初始化,在析构函数里释放,这样当对象失效销毁时,C++会自动调用析构函数,完成内存释放,资源回收等清理工作。--->智能指针原创 2022-06-05 18:17:23 · 131 阅读 · 0 评论 -
4. 关于常量和变量
const的最简单的用法,是定义程序用到的数字、字符串常量,代替宏定义。和宏定义的本质区别是:const定义的常量在预处理阶段并不存在,而是直到运行阶段才会出现。所以,准确地说,它实际上是运行时的“变量”,只不过不允许修改,是“只读”变量但是既然是变量,通过使用指针地址,再强制写入也是可以的,但这种做法破坏了常量性后面需要加上:因为const常量在大多数情况下被认为是常数,在运行期间不会改变,编译器看到const定义,就会采取一些优化手段,比如把所有const常量出现的地方都替换成原始值,所以对于没有v原创 2022-06-05 15:04:16 · 111 阅读 · 0 评论 -
3. 自动类型推导(了解
C++是一种静态强类型的语言,任何变量都要有一个确定的类型。在变量类型简单的时候比如int double还ok,但是在泛型编程里会有很多模板参数,有的类型还有内部子类型,一下子就把C++原来简洁的类型体系搞复杂了,比如但其实编译器是知道类型的,只不过没有办法直接告诉你,于是有了“自动类型推导”,让编译器自动填上正确的类型。用关键字,子这字啊代码里的作用像是个占位符placeholder;但有时候编译器理解不了代码的意思就会推导不出恰当的类型除了简化代码,auto还避免了对类型的“硬编码”,也就是说...原创 2022-06-04 17:38:11 · 218 阅读 · 0 评论 -
夯实C++基础:2. 一些针对“面向对象编程” 相关?(占坑
到底“面向对象”的本质时什么?怎么才能用好它?怎样才能写出一个称得上是“好”的类呢?(设计思想?实现原则?编码准则?更高效?更安全?更灵活?)面向对象的关键点是“抽象”和“封装”,多态,虚函数,重载是为了解决继承带来的一些问题 : 继承的本意是重用代码,表述类型的从属关系is-a,但它却不能与现实完全对应,所以用起来就会出现很多意外情况。C++11新增了一个特殊的标识符final,注意这不是关键字,把它用于类定义,就可以显示地禁用继承,防止其他人有意或无意地产生派生类。C++的四大函数没构造函数,原创 2022-06-04 14:42:25 · 126 阅读 · 0 评论 -
夯实C++基础:1.C++生命周期和编程范式、预处理、编译相关
一直告诉自己要保持学习;;但真的工作之后,反而不知道从哪里开始学起,就这么拖着光有想法没有行动。除了加班没有那么晚刷刷题之外,就从看课有人带着学开始夯实基础吧,反正学啥都比不学好。之后可以看设计模式,网络编程,STL深入学一学,也可以看书effectiveC++,操作系统内核之类//////要保持学习呀!C++ 程序的生命周期四个阶段:编码、预处理、编译、运行编码预处理是C/C++独有的阶段,在这个阶段发挥作用的是预处理器Pre-process,输入是编码阶段产生的源码文件,输出是经过“预处.原创 2022-05-29 23:51:18 · 173 阅读 · 0 评论