自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 C++之智能指针

RAII是啥子?智能指针怎么传参?所谓的循环引用到底是啥?智能指针如何进行强制类型转换?学完之后感觉智能指针是真的好,真现代,以后写代码看见raw pointers心里都膈应!

2021-03-12 00:43:39 619 2

原创 C++之强制类型转换

C++面试高频。通俗地展示了下行转换的风险,背八股文时建议细嚼慢咽,配合食用。对其它类型转换方式的咒骂声中,坚强地说出了他们存在的意义。而且你知道static_cast在内部类型互转时也是不够安全的吗?

2021-03-10 11:22:36 849

原创 C++之const

参考const 修饰函数参数,返回值,函数体const的理解,const指针,指向const的指针const(C++)const 之于变量const 之于普通变量用const修饰的变量声明必须初始化,之后变不可以被修改。const修饰的值也可以参与到常量表达式中,例如定义一个数组的大小。const int maxarray = 255;char store_char[maxarray]; //在c中是被禁止的const 之于指针变量const修饰指针的语法为char c = 'a'

2021-03-09 05:51:51 225

原创 迭代读取被封装的用户列表并更新的一种方法

需求设计一个位于消息收听端和消息广播端的用户列表,用来存放所有已连接客户的SOCKET,并且根据send()情况对该列表进行更新,同时,广播时也应该屏蔽该条消息的来源客户。设计为了记载用户的套接字及其地址信息,采用std::map<SOCKET, sockaddr_in>的容器建立映射。为了封装这么一个容器,我写了一个简单的类。由于在广播过程中需要迭代获取每一位当前用户,所以需要为这个类设计一个迭代接口。class CClientInfo { std::map<SOCKET,

2021-03-02 06:21:54 117

原创 单生产者-单消费者模型 产品库位于线程函数外

参考资料c++ 11 多线线程系列-----------生产者消费者C11线程管理:互斥锁需求需要构成一个生产者消费者模式,生产者和消费者是无继承关系的两个类的各自的对象,作用与两个不同的线程中。产品库设计在两个线程之外。方法将产品库容器的地址作为参数传入线程函数,在线程中将该地址传入类的构造函数,在对象中对该地址进行互斥的读写。关键原料#include <mutex>std::mutex g_lock;提供一个锁,其实也考虑过CRITICAL_SECTION,其开销较mu

2021-02-26 00:07:29 159

原创 用类成员函数操作其作用域之外的变量

需求一个类需要进行一些数据的生产,并且把产品放在该类作用域之外的容器中。这个容器是该类与另一个类构成生产者消费者模型的队列。这两个类不构成继承关系。实现思路将该容器的地址作为初始化参数传入类的构造函数,在类中添加指针类型成员变量,指向该容器。对该容器的操作利用类成员函数实现。代码类class shit { queue<int>* q; //指向外部容器的指针public: shit(queue<int>* Q) { //外部容器地址作为类初始化变量

2021-02-25 11:16:54 180

原创 C++ cin练习 与 数据抽象 实践

最近写了个弱智程序,找最大公约数(GCD,Greatest Common Divisor)。目前还未能分清楚数据封装和数据抽象的异同点,但是仍然可以实践。具体所作就是把类的数据(存放数字的变量)和关键成员函数(具体算法)藏起来,把构造函数和析构函数暴露出去,用于在主程序中进行操作(作为接口)。因为这个类很简单,给它俩数,它告诉你GCD,于是不必废话,直接在构造函数中调用算法,然而在调用算法之前需要执行输入数据的检查,否则会出现意想不到的可笑错误。而主程序的主体被写在一个do while循环体中,需要在每次

2021-02-02 04:54:13 258

原创 C++ 类和对象

C++在C语言基础上增加了面向对象的编程,支持面向对象的程序设计。类是C++的核心特性,通常被称为用户定义的类型。类用于指定对象的形式,包含(类的成员)数据表示法;处理数据的方法;目录C++类的定义定义C++对象访问数据成员继承中的特点类构造函数 与 析构函数构造函数带参数的构造函数使用初始化列表来初始化字段析构函数拷贝构造函数C++类的定义定义一个类 = 定义一个数据类型的蓝图。定义过程中并未定义任何数据,但是定义了类的对象包括了什么,可以做什么操作。class classname/

2021-01-29 12:28:27 152

原创 C++ 数据结构

C++中的数组存储相同类型数据项,而结构(struct)时一种用户自定的数据类型,允许用户存储不同类型数据项。定义结构struct 语句格式struct type_name {member_type1 member_name1;member_type2 member_name2;member_type3 member_name3;..} object_names;//例如struct Books{ char title[50]; char auther[50]; char s

2021-01-28 11:51:12 1290

原创 C++基本

C++基本关键字命名空间C++输入与输出缺省参数函数重载引用关键字有很多,但也不是很多命名空间从写hello world开始,就注意到using namespace std;的存在。在我理解中,命名空间就像是创建了许多文件夹,有逻辑地将变量、函数和类(什么是类?)归入其中,避免命名冲突(字面意思)。namespace N1{ \\在命名空间中定义变量 int a; \\在命名空间中定义函数 int Nothing(int a) { return a; } \\在命名空间中

2021-01-27 11:29:04 135 2

空空如也

空空如也

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

TA关注的人

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