构造函数

构造函数

  • 在 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) { ... }
};

你可能感兴趣的:(构造函数)