这篇文章用于记录一些容易被忽略或鲜为人知的C++语法点
随时更新……
1.默认参数
在声明一个具有默认参数的函数或方法时,一般的写法如下:
void Foo(int iData, bool bFlag = true);
偷懒一点,也可以写成这样:
void Foo(int iData, bool = true);
2.拷贝构造函数的形式只有一种,即 X::X(const X& x);
其他诸如X::X(X)或X::X(const X);的声明都是不被允许的!
3.在子类中使用 using 声明引入基类成员名称(详见C++ using关键字作用总结),例如
class Derived : private Base {
public:
using Base::size;
protected:
using Base::n;
// ...
};
实际上,using不写也是可以的。
4.sizeof
sizeof是预算符,而不是某个函数,一般在编译器就完成了计算,可视同为某个常量。
int a;
sizeof(a)是合法的,sizeof a也是合法的。(这也证明了sizeof并非函数)
对于指针类型变量,例如:
int *p;
sizeof*p是合法的,作用是计算指针p指向数据类型的大小