![](https://img-blog.csdnimg.cn/20201014180756913.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C++
花一样的阿衰
不思进取的底层码农
展开
-
win线程互斥
使用WaitForSingleObject实现,线程1和线程2之间互斥,仅能运行一个线程。如下代码在VS2019 MFC下运行,static BOOL g_NeedCacncel = FALSE;HANDLE g_Mutex = NULL;// OnInitDialog中调用initvoid CWinThreadTestDlg::init() { g_Mutex = CreateMutex(NULL, false, NULL);}// close时候调用uninitvoid CWinTh原创 2022-05-18 17:00:37 · 176 阅读 · 1 评论 -
C++ STL set和map容器插入自定义数据
自定义的数据类型需要指定排序的方式,才可以使用set容器。重载 () 的方式需要额外定义一个类,类中重载()来指定排序的方式,Compare中指定了排序为从大到小的排序。#include <iostream>#include <set>using namespace std;class MyData { public: int value; MyData(int value) { this->value = value;原创 2021-12-24 18:08:16 · 1221 阅读 · 0 评论 -
C++文件操作
fstream#include <cstring>#include <fstream>#include <iostream>using namespace std;#define FILE_PATH "fstream_test.txt"void writeFile() { ofstream ofs; ofs.open(FILE_PATH, ios::out); ofs << "This is a write file原创 2021-12-20 10:57:04 · 617 阅读 · 0 评论 -
C++继承
继承语法class 子类名 :继承方式 父类继承方式公共继承 (public) 子类继承到父类的成员后,依然保持原有的成员访问权限,例如父类是public还是保持public,父类是protected依然保持是protected。保护继承 (protected) 子类继承到父类成员后,会将public权限的成员修改为protected权限。私有继承 (private) 子类继承到父类成员后,会将public和protected权限的成员修改为private权限。#include <io原创 2021-12-14 17:07:58 · 1006 阅读 · 0 评论 -
构造/析构函数
构造函数的类型构造函数会在类每次实例化的时候自动调用,构造函数可以分成如下几类:按照是否有参数分为:无参构造函数和有参构造函数,其中无参构造函数也是默认的构造函数按照构造函数的类型分为:普通构造函数和拷贝构造函数无参构造函数#include <iostream>#include <string>using namespace std;class test {public: test() { cout << "test"<原创 2021-12-12 16:40:29 · 476 阅读 · 0 评论 -
引用和指针
指针的使用方式#include <iostream>int main(int argc, char const* argv[]) { int a = 10, b = 100; /* 指针的定义 */ int *p = NULL; /* 指针的赋值 */ p = &a; /* 通过指针修改指向的地址的值 */ *p = 20; std::cout << "a: " << a << st原创 2021-12-10 17:57:14 · 176 阅读 · 0 评论 -
new和delete
创建一个普通的变量#include <iostream>int main(int argc, char const* argv[]) { int* p = new int(10); /* 构建一个int大小的内存,初始值是10 */ std::cout << "*p: " << *p << std::endl; /* 输出的值是: 10 */ *p = 20; /* 修改指针指向地址的值 */ std::cout原创 2021-12-10 17:44:35 · 159 阅读 · 0 评论 -
单例模式
单例模式介绍单例模式有下面的特点:1、单例类只能有一个实例。2、提供一个访问它的全局访问点。要构造一个实例,就必须调用类的构造函数,如此,为了防止在外部调用类的构造函数而构造实例,需要将构造函数的访问权限标记为protected或private。提供要给全局访问点,就需要在类中定义一个static函数,返回在类内部唯一构造的实例。单例模式的优点:在内存中只有一个对象,节省内存空间避...原创 2019-08-21 14:57:31 · 91 阅读 · 0 评论 -
命名空间
可能某种情况下,写了一个fun()函数,而正好所引用的库中也包含fun()函数,这个时候编译器不知道到底该用哪个函数,就会报错。基于这种情况下,使用命名空间(namespace)来解决该问题。 简单使用命名空间#include <iostream>using namespace std;namespace hello { void fun() { ...原创 2019-06-26 15:27:25 · 94 阅读 · 0 评论 -
C++多态
多态定义在面向对象语言中,接口的多种不同的实现方式即为多态。通俗一点的说就是一个父类中有一个函数fun(),有很多子类都继承该父类,而每一个子类中又各自实现了自己的fun()。这些fun()的关联点是函数名称相同甚至参数相同,根据对象的不同调用fun()函数所做的动作也就不同。在C++中说多态先要说虚函数、纯虚函数、普通函数的含义。 虚函数、纯虚函数虚函数:通过关键字virtua...原创 2019-06-26 11:56:35 · 266 阅读 · 0 评论 -
C++重载
继承继承就是我们依据另一个类来定义一个类,已有的类称为基类,新建的类称为派生类,我更习惯叫父类和子类。有如下几个方面描述继承:访问的权限:子类可以访问父类中所有的非私有成员,也就是说如果父类成员不想被子类的成员函数访问,则应在父类中声明为private。继承的类型:同样分为public、private、protected,通常情况下都是使用public来继承多继承:就是一个子类可以有多个父...原创 2019-06-25 18:26:47 · 1980 阅读 · 0 评论 -
访问修饰符、友元、this指针
类的构建和使用中描述了部分类和对象的概念,例如构造/析构函数,类函数,下面介绍其他几种概念。 访问修饰符访问修饰符有:public、private、protected三种,描述如下:public:公有成员,在类的外部是可访问的,可以不通过类函数来进行访问和修改private:私有成员,在类的外部是不可访问的,甚至是不可查看的。只有类和友元函数可以访问私有成员protected...原创 2019-06-25 17:58:33 · 182 阅读 · 0 评论 -
Class的构建和使用
构建class下面描述的是一个简单的class,有一个变量value,一个类函数,一个构造函数,一个析构函数,其中构造函数和析构函数不是必须存在的。class hello_world{public: int value; /* 成员 */public: void fun(int a, int b); /* 类函数 */public: hello_world();...原创 2019-06-25 17:21:36 · 561 阅读 · 0 评论