构造函数
- 在 class 中,可以不写默认构造函数,编译器会默认生成。
class A {
public:
A(int a) { ... }
// 默认生成的构造函数什么都不做
//A() { }
};
- 在构造函数中,尽量使用初始化列,但是会有陷阱,具体在进阶文档里写。
class A {
private:
int a, b;
public:
A(int x, int y): a(x), b(y) { ... }
};
- 在 class 继承了别的 class 的时候,如果需要调用基类的非默认构造函数(有参数的),需要显示的写在初始化列里。否则,在创建派生类对象的时候,编译器会默认调用基类的默认构造函数,编译器不会报错,但是程序会出错。
内联函数
class A {
public:
A() { ... }
A(int a) { ... }
};
class B : public A {
public:
B(int a) : A(a) { ... }
};
网友评论