c++
chenxiemin
这个作者很懒,什么都没留下…
展开
-
C++: 实战详解智能指针
目的本文简介C++ 11的智能指针,包括shared_ptr, unique_ptr与weak_ptr,并给出一些典型的使用场景。简介我推荐在一切可能的场合使用智能指针替代C/C++的裸指针。当使用智能指针变成一种习惯,它会从本质上影响程序思维:申请的要释放,打开的要关闭。问题考虑下面的代码场景,在极少情况下(fail1 / fail2)会导致资源(Resource)泄露。这里的资源不限于内存(memory),锁(lock)以及网络套接字(socket)等。Object *object = ne原创 2020-12-16 20:16:36 · 611 阅读 · 0 评论 -
C++:多线程的正确打开姿势
目的本例简介c++11中thread库如何创建与停止线程。实现如下的实例中,通过ThreadWrapper::start()方法启动线程,通过ThreadWrapper::stop()方法停止线程。线程的主体函数为Thread::run()方法。#include <iostream>#include <thread>#include <memory>#include <unistd.h>class ThreadWrapper {privat原创 2020-12-14 19:50:53 · 972 阅读 · 0 评论 -
c++: 实战详解vector
目的本文从实际使用的角度出发,简介C++中vector的基本用法,如增,删,改,查等,并举例说明。增如下代码演示如何向vector中添加元素,其中:#include <iostream>#include <vector>#include <iostream>#include <vector>int main() { std::vector<int> ilist; ilist.push_back(1); i原创 2020-12-10 19:31:02 · 1246 阅读 · 0 评论 -
c++: 详解static_cast与dynamic_cast
目的本文简介C++中static_cast与dynamic_cast的使用场景,并介绍一些C++中的其他*cast。static_cast你应该在牵涉到自定义的C++ class类型转换中用到它。因为它会帮你做一些静态类型检查。如下的例子是一种可能的应用场景:#include <iostream>class Me { public: void print() { std::cout << "Hello" << std::endl;原创 2020-12-09 17:37:57 · 2127 阅读 · 1 评论 -
c++: 单例模式(Singleton)的最优写法
目的本例简介C++中单例模式的最优写法。实现基础写法下面的代码是C++单例的基础写法,在静态函数Singleton::getInstance()中定义了Singleton的静态变量对象,并返回此对象的引用。由于C++函数的静态变量唯一性,可以确保例子中s对象的唯一性,线程同步,以及静态对象间的依赖关系等问题。#include <iostream>class Singleton { public: static Singleton &getInstance() {原创 2020-12-08 20:01:16 · 11689 阅读 · 4 评论