面向对象
_Saoke
曾以为走不出去的日子
现在都回不去了
展开
-
C++中string类的原型
#include<iostream>#include<cstring>using namespace std;class String{private: char *pstr;public: String(const char *str = " ") { pstr = new char[strlen(str) + 1]; ...转载 2019-02-22 20:15:07 · 2203 阅读 · 0 评论 -
回调函数的理解和总结
我们对回调函数的使用无非是对函数指针的应用,函数指针的概念本身很简单,但是把函数指针应用于回调函数就体现了一种解决问题的策略,一种设计系统的思想。在解释这种思想前我想先说明一下,回调函数固然能解决一部分系统架构问题但是绝不能再系统内到处都是,如果你发现你的系统内到处都是回调函数,那么你一定要重构你的系统。回调函数本身是一种破坏系统结构的设计思路,回调函数会绝对的变化系统的运行轨迹,执行顺序,调用顺序。回调函数的出现会让读到你的代码的人非常的懵头转向。那么什么是回调函数呢,那是不得以而为之的设计策原创 2019-02-13 22:51:35 · 456 阅读 · 0 评论 -
C++继承
继承什么是继承:继承可以认为是类层面上的重载. 在保证原有类型的基础上进行扩展, 实现类的代码复用. 继承展现了面向对象程序设计的层次结构.基类和派生类对象之间的赋值:派生类可以赋值给基类的对象/指针/引用(切片), 但是基类不能赋值给派生类.隐藏(重定义):基类和派生类有独立的作用域如果子类中有和父类同名的函数, 子类成员将屏蔽父类的同名成员的直接访问形成对父类同名成员的隐藏(重定...原创 2019-07-06 19:58:58 · 175 阅读 · 0 评论 -
C++异常
C语言异常处理C语言中最常用的处理简单错误的方式就是通过 assert , 错误码 以及 perror等库函数来进行错误的获取和处理. 但是这存在一些缺陷, 比如说 assert 直接终止程序太粗暴, 错误码在返回值为整型家族的函数中会难以判断.setjmp.h在C语言的函数库中存在 setjmp 和 longjmp 的组合, 来实现简单的异常捕获和处理. 这在较大型的C语言项目中可能会用到...原创 2019-07-06 19:59:49 · 245 阅读 · 0 评论 -
C++智能指针
智能指针智能指针主要是为了解决内存泄漏的问题, 这与异常安全是密不可分的, 如果在malloc和free之间或new和delete之间存在抛出异常的话, 还是会存在内存泄漏的问题.智能指针的原理RAII(Resource Acquisition Is Initialization): 资源获取即初始化这是一种利用对象声明周期来控制程序资源的技术.在对象构造时获取资源, 在这个对象的整个声...原创 2019-07-06 20:00:12 · 254 阅读 · 0 评论 -
C++的类型转换
C语言中的类型转换#include <stdio.h>#include <Windows.h>int main() { int i = 1; // 隐式类型转换 double d = i; printf("%d\t%.2f\n", i, d); int* p = &i; // 强制类型转换 int address = (int)p; prin...原创 2019-07-29 20:44:07 · 260 阅读 · 0 评论 -
关联式容器--树形结构(map&set)
关联式容器什么是关联式容器:关联式容器也是用来存储数据的,与序列式容器(vector, list, deque…)不同的是,其里面存储的是<key, value>结构的键值对,在 数据检索时比序列式容器效率更高键值对:用来表示具有一一对应关系的一种结构,该结构中一般只包含两个成员变量key和value,key代表键值, value表示与key对应的信息, 这类似于字典中的一一对...原创 2019-07-29 20:37:53 · 840 阅读 · 0 评论