头文件相互引用
1.引言 这几天在做一个项目,遇到了想保存单例B里面的数据,于是用了一个单例A A类里面定义B的对象,想保存单例B某时的状态,所以头文件里有B.h B类里面的某个成员函数实现需要先实例化A,然后把单例B的状态存在A中的B对象里,所以我在B的头文件里写了A.h 这时候编译器就报错了,提示我们不能在A.h中定义B b //A.h #include"B.h" class A { /...
1.引言 这几天在做一个项目,遇到了想保存单例B里面的数据,于是用了一个单例A A类里面定义B的对象,想保存单例B某时的状态,所以头文件里有B.h B类里面的某个成员函数实现需要先实例化A,然后把单例B的状态存在A中的B对象里,所以我在B的头文件里写了A.h 这时候编译器就报错了,提示我们不能在A.h中定义B b //A.h #include"B.h" class A { /...
1.引言 项目上总是用到单例,所以做一个小总结,之前在学校学习设计模式像背八股文一样,毫无实践可言 2.解决什么问题 首先说单例是解决什么问题的呢 像我们有个两台打印机,但是点击打印的时候,只让一台来打印就可以,如果两个都打印,显然是错的,所以单例就是让类只有一个实例,比如电脑中的窗口,一个窗口只能被一个实例所控制,如果多个实例控制一个窗口,那就乱了 简单理解就是一个类只由一个它所...
1.引言 每次拉取和推送github时,总被超时所困扰,后来想到代理的话有规则和全局,规则就是只对国外网站采用代理,全局就是用代理访问所有网站 思索一下,那就想能不能让git也设置为规则代理的模式,也就是说,让git指定通过代理走github,说干就干,发现还真的可以 2.操作 4780就是自己代理的端口,可以在代理软件上自己使用的端口 git config --global ht...
1.起源 由于我要迁移主题到chirpy,而chirpy显示目录的最高标题是从二级标题开始,所以就要修改我所有的文章,那我就想,能不能自己写个cpp程序,自动将标题降级呢,比如一级标题降到二级之类的 2.设计方案 既然打算用cpp写,这又是个查找替换的问题,所以想到了采用正则表达式来做 std::regex pattern(R"(^(#+)(\s\d+))"); 这是把# 1.1...
1.引言 想写这个程序的起因是我们即将要开发三维CAD相关,所以用到OSG,但是OSG的安装过于繁琐,我们的项目下个月就要开始了,所以想着自己写个程序帮助同事们直接跳过最繁琐的配置环节,今天虽然是周六并且我还在发烧,但中午仍然是干了4个小时,写出来了这个程序,现在只把源码放上来,挖坑以后再填,具体的使用方法请看这里:OSG源码下载后,快速配置Cmake的C++程序 2.源码 #inc...
1.导言 本来是在C++群里回答一个很简单的类型转换后判断字节的问题,后来发现代码中有个点还蛮有意思的,所以记录下来 2.场景 有这个代码 int a = 5; sizeof(a++); cout << a << endl; 我发现a竟然输出的5,来想自增后不是变成6吗 这是因为 sizeof 是一个编译时运算符,它不会对其操作数进行求值。在这个例子中,...
1.可调用对象 1.1.函数指针 void myfunc(int tv) { cout << "myfunc()函数执行了, tv = " << tv << endl; } int main() { void(*pmf)(int) = &myfunc;//定义一个函数指针pmf并给了初值 pmf(15);//调用函数,这...
一.函数调用运算符 一个函数 int func(int a){} func(5) 会发现无论里面有没有参数,都要用(),其实圆括号()就是函数调用的明显标记,()有一个称呼叫做函数调用运算符 如果在类中重载了函数调用运算符(),那么就可以像使用函数一样使用该类的对象了。对象(实参) 如何使用函数调用运算符呢? a)定义一个该类的对象 b)像函数一样使用该对象,也就是()中增...
一.什么是函数指针 首先用函数指针变量调用函数 一个函数,在编译的时候,系统会给这个函数分配一个入口地址,这个入口地址就称为函数的指针(地址),既然有地址,我们可以定义一个指针变量,指向该函数,然后通过该指针变量调用该函数 int max(int a, int b) { if(a < b) return b; return a; } int a ...
1.背景 自己写了个C++爬虫,但是刚开始打开exe后,提示“应用程序无法正常启动0xc00007b” 所以用Dependencies搜了下,发现缺少libcurl.dll,于是把libcurl.dll放在exe同目录下这个问题倒是解决了 但紧接着出现了“由于找不到libeay32.dll 无法继续执行代码”,搜了下是openssl的问题,又涉及到什么环境变量乱七八糟的,找了几个安装包...