#include <string>
using namespace std;
class Person {
private:
// 成员变量
int age;
string name;
const int id; // const成员(只读,一旦初始化不可修改)
int& score; // 引用成员(必须绑定到一个变量,不能默认初始化)
public:
// 使用初始化列表(推荐)
Person(int a, string n, int i, int& s) : age(a), name(n), id(i), score(s) {
// 函数体为空,成员已在列表中初始化
}
};
// 基类(无默认构造函数)
class Base {
private:
int baseVal;
public:
Base(int val) : baseVal(val) {} // 带参构造,无默认构造
};
// 子类:必须在初始化列表调用基类构造
class Derived : public Base {
private:
int derVal;
public:
// 先初始化基类Base,再初始化子类自己的成员
Derived(int bVal, int dVal) : Base(bVal), derVal(dVal) {}
};