自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(13)
  • 收藏
  • 关注

原创 共享指针shared_ptr

#include <memory>#include <iostream>class A{ public: ~A() { std::cout << "destroy A" << std::endl; } int a;};int main() { ...

2020-05-08 12:03:14 185

原创 共享指针(shared_ptr)对于类的拷贝/赋值带来的好处

1.不使用共享指针的情况#include <iostream>#include <memory>#include <string.h>class A{ public: A() { std::cout << "create A." << std::endl; } ...

2020-04-09 12:24:43 3634

转载 C++使用模板、函数指针、接口和lambda表达式这四种方法做回调函数的区别比较

在C++中,两个类之间存在一种关系,某个类需要另外一个类去完成某一个功能,完成了之后需要告知该类结果,这种最普通最常见的需求,往往使用回调函数来解决。如题,我总结下来有这么四种方式可以完成这项功能,下面来一一分析:1、使用模板// CppTest.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#include <stdlib.h>#i...

2020-01-05 21:33:51 242

转载 C++程序员的职业生涯规划(转)

一、C++服务器程序员(高性能服务器后台)1、良好的TCP/IP协议,C++基础;2、大学本科学历,计算机相关专业,一年以上服务器开发工作经验(优秀应届生亦可接受);3、熟悉C++语言编程,能够独立根据需求进行模块设计和进行开发工作;4、理解面向进程的编程思想,注重代码质量,单元测试,功能测试,持续改进;5、具备较强的学习能力,良好的沟通能力及团队协作能力,具有很强的责任心,能承受较大的...

2019-09-27 18:26:18 462

转载 [c++11]我理解的右值引用、移动语义和完美转发

原文链接:http://www.jianshu.com/p/d19fc8447eaa ...

2019-07-15 16:51:56 105

原创 编写MyString

MyString构造函数要区分输入参数是否为空;构造函数生成的对象原来并不存在,所以不需要delete[] m_data;对于拷贝赋值函数,操作步骤分为三步:防止自赋值;delete 当前内存,然后向当前对象赋值;返回当前对象引用;(目的是为了方便链式调用,如a = b = c ;)strlen在参数为NULL(等价于0,’\0’)时会抛异常,所以MyString的构造函数需要...

2019-07-15 16:14:46 172

原创 拷贝构造,赋值,右值拷贝构造,右值拷贝赋值函数的使用

1.c++编译器返回值优化​ 由于编译器默认开启了返回值优化(RVO/NRVO, RVO, Return Value Optimization 返回值优化,或者NRVO, Named Return Value Optimization)。​ 虽然各大厂家的编译器都已经都有了这个优化,但是这并不是c++标准规定的,而且不是所有的返回值都能够被优化,而这篇文章的主要讲的右值引用,移动语义可以解决...

2019-07-15 00:17:52 934 1

原创 拷贝构造函数的参数

拷贝构造函数和拷贝赋值函数class A{ A(const A& a);};问题:参数是否一定要加const?1. 拷贝构造函数的参数1.1 使用不加const的拷贝构造函数#include <iostream>class A { public: A(){std::cout << "A construct." <...

2019-07-14 15:09:01 3265

原创 C++ 类的初始化及释放

1. 类的初始化、销毁顺序1.1 如果使用的是类对象在初始化时,默认调用构造函数;在超出作用域时,默认调用析构函数;示例1#include <iostream>using namespace std;class Base { public: Base(){cout<< "base " << endl;} ~Base(){cout ...

2019-07-07 00:31:39 566

原创 C++ 单继承时类的初始化和销毁

1. 父类和子类的初始化、销毁顺序1.1 使用子类对象初始化时,先初始化父类,再初始化子类;销毁时,先销毁子类,再销毁父类;示例#include <iostream>using namespace std;class Base { public: Base(){cout<< "base " << endl;} //virtual ...

2019-07-07 00:30:33 669

原创 C++ 单继承时成员变量的初始化和析构

1. 类的初始化、销毁顺序1.1 初始化、析构顺序如下初始化:父类的成员变量父类的构造函数子类的成员变量子类的构造函数析构:子类的构造函数子类的成员变量父类的构造函数父类的成员变量示例1#include <iostream>using namespace std;class A { public: A(){cout<< "A "...

2019-07-07 00:29:13 522

原创 前向声明

前向声明1.类成员函数是指针A.h#ifndef _A_H_#define _A_H_class A{public: A(); ~A(); void test();};#endifA.cpp#include "A.h"#include <iostream>using namespace std;A::A() { cout << ...

2019-07-07 00:26:12 173

原创 c++多线程设计模式之一(Latch门阀模式)

使用场景: 多个任务同时完成,才能进入下一步时使用;#include <iostream>#include <thread>#include <mutex>#include <condition_variable>#include <random>#include <chrono>class Latch { ...

2019-07-06 23:49:27 1037

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除