0%

Some notes of C++

some personal notes about c++

使用visual studio 2019编写c++时initializer_list无法使用我忘记加名字作用域了
数组不能被拷贝
返回数组指针的函数,sampleint (*func(int i))[10]int i表示函数的形参是int,*func表示是一个指向数组的指针,[10]表示大小为10,int表示数组中的元素为int 以上也可以表示成auto func(int i) -> int (*)[10],或者用decltype ***

调用函数一般比直接计算表达式慢,因为调用函数需要设计到一系列的保存恢复等工作。


1
2
inline bool eq(const BigInt&, const BigInt&){...}
void putValues(int *arr,int size);

以上的哪个声明和定义放在头文件或源文件? ###### tips:上中的第一行,形参如const BigInt&是省略的名字,相当于const BigInt& bigint
预处理器定义了几个用于调试的变量

1
2
3
4
5
__func__  存放函数的名字
__FILE__ 存放文件名
__LINE__ 存放当前行号
__TIME__ 存放文件编译的时间
__DATE__ 存放文件编译日期

decltype用作函数时,返回的是函数而不是指针


返回引用是个对象本身,而返回对象则是对象的拷贝
底层const可以重载而顶层不行 ***

成员初始化时根据在类中出现的顺序而不是初始值列表时候的数据


constexpr的唯一可执行可执行语句时return


TODO

constconstexpr区别
初步认为constexpr是编译器可以计算出来为常量,而const是只读


在类外定义成员函数时只能在类内声明的关键词explicitstatic