
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 | inline bool eq(const BigInt&, const BigInt&){...} |
以上的哪个声明和定义放在头文件或源文件? ###### tips:上中的第一行,形参如const BigInt&
是省略的名字,相当于const BigInt& bigint
预处理器定义了几个用于调试的变量 1
2
3
4
5__func__ 存放函数的名字
__FILE__ 存放文件名
__LINE__ 存放当前行号
__TIME__ 存放文件编译的时间
__DATE__ 存放文件编译日期
将decltype
用作函数时,返回的是函数而不是指针
返回引用是个对象本身,而返回对象则是对象的拷贝
底层const可以重载而顶层不行 ***
成员初始化时根据在类中出现的顺序而不是初始值列表时候的数据
constexpr的唯一可执行可执行语句时return
TODO
const
和constexpr
区别
初步认为constexpr是编译器可以计算出来为常量,而const是只读
在类外定义成员函数时只能在类内声明的关键词explicit
和static