随笔分类 - C++
摘要:1、头文件 #ifndef MAINWINDOW_H #define MAINWINDOW_H #include <QMainWindow> #include <QDebug> #include <QDomDocument> using namespace std; namespace Ui { c
阅读全文
摘要:1、C++给我们typedef了很多原子变量 /// atomic_bool typedef atomic<bool> atomic_bool; /// atomic_char typedef atomic<char> atomic_char; /// atomic_schar typedef at
阅读全文
摘要:总流程: 1.预处理(Preprocessing) 预处理用于将所有的#include头文件以及宏定义替换成其真正的内容; 将hello.c预处理输出hello.i文件 2.编译(Compilation) 将经过预处理之后的程序转换成特定汇编代码(assembly code)的过程; 在这个阶段中,
阅读全文
摘要:一、C语言: 1、输入 ①、scanf 遇到空格、回车和Tab键停止; 自动在输入字符串末尾加结束符; #include <stdio.h> int main(void){ int a,b,c; printf("input a,b,c\n"); scanf("%d%d%d",&a,&b,&c); p
阅读全文
摘要:原则: 能否正常返回这个值,要看这个值的内容或指向的内容是否被回收,导致空指针或者真实内容被擦除。【一旦返回值有指针或者地址,就需要着重考虑,而返回一个值是一般都可以的,可参考C++的临时变量】 下面对不同情况说明。 1、返回指向常量的指针 #include <stdio.h> char *retu
阅读全文
摘要:代码: #include <stdio.h> #include <string.h> #define NAME_LENGTH 256 #define PERSON_COUNT 3 struct Person { char name[NAME_LENGTH]; int moneyNum; }; voi
阅读全文
摘要:1、代码 #include <stdio.h> struct Person{ int a; double b; }; /*引用传递*/ void AliasFun(struct Person& person) { person.a = 100; person.b = 100.1; } /*指针传递*
阅读全文
摘要:1、看string源码的时候发现这样写,第一次见 2、拿这句话说明: typedef typename _Alloc_traits::const_pointer const_pointer; typedef创建了存在类型的别名,而typename告诉编译器_Alloc_traits::const_p
阅读全文
摘要:名称:xxyy,那么类型一定义yy,只是内容和xx有关,如下 函数指针 = 指向函数的指针 指针函数=返回指针的函数 数组指针=指向数组的指针 指针数组=内容是指针的数组 类模板=用来产生类的模板 模板类=使用类模板产生的类 函数模板=用来产生函数的模板 模板函数=使用函数模板产生的函数 参考:ht
阅读全文
摘要:一、std::function 1、概念 std::function是一个函数包装器模板,最早来自boost库,对应其boost::function函数包装器。在c++11中,将boost::function纳入标准库中。该函数包装器模板能包装任何类型的可调用元素(callable element)
阅读全文
摘要:摘抄于微信公众号《程序喵大人》:https://mp.weixin.qq.com/s/f7mHeiHdt7ltyAN-w3mbkQ auto类型推导 auto可以让编译器在编译器就推导出变量的类型,看代码: auto a = 10; // 10是int型,可以自动推导出a是intint i = 10
阅读全文
摘要:参考微信公众号《程序喵大人》:https://mp.weixin.qq.com/s/kAH-402oYgAa3GAVgJ8EaQ auto & decltype 关于C++11新特性,最先提到的肯定是类型推导,C++11引入了auto和decltype关键字,使用他们可以在编译期就推导出变量或者表达
阅读全文
摘要:1、两者的定义和性质不同 指针是一个变量,存储的是一个地址,指向内存的一个存储单元; 引用是原变量的一个别名,跟原来的变量实质上是同一个东西。 int a = 996; int *p = &a; // p是指针, &在此是求地址运算 int &r = a; // r是引用, &在此起标识作用 上面定
阅读全文
摘要:临时变量通常在函数参数传递发生类型转换以及函数返回值时被创建。比如下面这个例子: void uppercasify(const string& str) {} int main(int argc, char* argv[]) { char subtleBookPlug[] = "Effective
阅读全文
摘要:1、例子 class BaseA { public: int a; }; class BaseB { public: double b; }; class Derived : public BaseA, public BaseB { }; int main(int argc, char const
阅读全文
摘要:1、使用命名空间 using namespace std; 2、使用别名 using Uisystems = std::vector<UiSystemService*>; 类似于typedef typedef std::string TString;
阅读全文
摘要:一、常识 随意打开一本C++书,基本都会写着一句话:子对象可以转化成父对象,父对象不能转化成子对象。 1.1、子对象可以转化成父对象 很好理解,其实就是C++多态的体现,父指针可以指向子对象地址,当调用父对象里生命的函数时,会默认调用子对象的此“重写函数”巴拉巴拉巴拉..... 1.2、父对象不可转
阅读全文
摘要:struct TParameter { int byteLen; int dataType; QString name; QString value; TParameter& operator = (const TParameter& destTParameter){ byteLen = destT
阅读全文
摘要:1、直接放 std::set<NetworkInfo> networks; 其中NetworkInfo是一个自定义结构体 //网络信息配置结构体 struct NetworkInfo { bool isRuning; //是否正在运行 Protocol netWorkProtocol; //协议 Q
阅读全文
摘要:1、类私有函数命名:下划线+函数名 void _init(); 2、类私有成员名称:"m_"+驼峰变量名 int m_value; 3、基本的容器类型全部使用C++stl中的,string用Qt的QString 顺序容器: vector string (它不是类模板) list forward_li
阅读全文