首页
Sterben_01
取消

笔试题整理

笔试题整理 输出下面函数的运行结果 class A { public: virtual std::string clsname() { return "A"; } std::string clsname2() { return "A"; } void test() { std::cout << "A, " << clsname()...

设计模式

设计模式 创建型模式部分 创建型模式主要关注与对象的创建。通常这类模式被用于创建对象的时候。比如抽象工厂被用于创建产品族,原型模式被用来模拟更自由的深拷贝等等。 简单工厂模式 流程 设计一个抽象产品类,它包含一些产品类公共方法的实现; 从抽象产品类中派生出多个具体产品类,如篮球类、足球类、排球类,具体产品类中实现具体产品生产的相关代码; 设计一个工厂类,工厂类中提供一...

C++杂记 - 3

C++杂记 - 3 std::bind, std::function 和 std::mem_fn std::bind 包括但不限于mem_fn的功能,更为通用的解决方案 什么是bind?我们可以把它看作一个通用的函数适配器,它接受一个可调用对象,生成一个新的可调用对象来“适应”原对象的参数列表。 std::bind将可调用对象与其参数一起进行绑定,绑定后的结果可以使用std::fun...

c++并发编程实战-笔记

第二章 std::thread的析构函数在线程对象没有调用join或detach的时候会调用std::terminate()。 如果一个线程我们没有调用join或detach,也就是说并没有分离出去或阻塞直至新线程执行完毕并回收资源,(也就是joinable() == true)。那么当这个线程被析构的时候,std::thread的析构函数会调用std::terminate()。这是非常...

深度探索 C++ 对象模型 笔记

深度探索 C++ 对象模型 笔记 1.1 类的封装不会给C++带来额外成本。 额外成本(时间,空间)来自于虚机制 类内只包含非静态成员变量的大小 和 虚机制导致的虚指针(如果有的话)。静态成员变量,所有成员函数都不算作类的大小。此处不再赘述 关于虚函数和虚指针,RTTI在单独的笔记有。 1.2 C++优先判断一个语句为声明:当语言无法区分一个语句是声明还是表...

单例模式

单例模式 优点: 只有一个实例所以不需要每次都创建和销毁,可以在启动的时候就创建对象然后永久驻留在内存中。 缺点: 有的实现方式是线程不安全的。 懒汉式: 懒汉式的意思是,只有类被实例化的时候才会创建这个单例实例。意思就是你不能在类里面放一个静态实例了,那样就是饿汉式了。普通的懒汉式是线程不安全的。 线程不安全版本: #include <iostream> #in...

HTTP

HTTP请求报文格式 注意请求体(请求数据)部分GET请求没有。 HTTP请求方法 GET:向指定的资源发出“显示”请求。使用 GET 方法应该只用在读取数据,而不应当被用于产生“副 作用”的操作中,例如在 Web Application 中。其中一个原因是 GET 可能会被爬虫等随意访 问。所以GET请求不应被定义为带有副作用的操作。 HEAD:与 GE...

项目相关

项目相关 UDP TCP UDP不需要监听,自然服务端没有listen,UDP是无连接,在无连接需求下自然客户端没有connect,服务端也没有accept UDP可以调用connect函数。但是和TCP意义不同。UDP使用connect之后,内核仅仅会把对端ip&port记录下来。这样链接就变成了一对一的。也就是可以使用TCP的那一套系统调用了。但是UDP自己本身还是U...

数据库

数据库 MYSQL结构 应用层 链接处理 鉴权 安全管理 服务层 安全管理 备份恢复 集群管理 复制管理 … 接口 ...

Effective STL 笔记

Effective STL 笔记 第二条:不要试图编写独立于容器类型的代码。 STL 是以泛化原则为基础的: 数组被泛化为”以其包含的对象的类型为参数“的容器; 函数被泛化为”以其使用的迭代器的类型为参数“的算法; 指针被泛化为”以其指向的对象的类型为参数“的迭代器; 容器被泛化为”序列式和关联式“容器。 个人理解一句话:别给多个容器写一个通用的函数。没有意义而且...