extern int i; // 声明declaration
int j; // 声明并定义j
extern double pi = 3.1416; // 定义definition
x
using namespace std;
class Box {
friend int main();
public:
// 默认构造函数
Box() : _i(1), _j(20) {
// 函数体内部赋值为二次赋值
}
// 不能给i和j配默认值,即不能这样写:Box(int i = 0, j = 0),会与默认构造函数冲突
Box(int i, int j) : _i(i), _j(j) {
}
private:
int _i;
int _j;
// 声明
static int count1; // 非const类型的静态类成员必须类外初始化
static int count2; // 非const类型的静态类成员必须类外初始化
static int count3; // 非const类型的静态类成员必须类外初始化
const static int avg = 0; // const静态类成员可以直接初始化
};
int Box::count1{5}; //初始化
int Box::count2(2); //初始化
int Box::count3; //默认初始化为0
int i; // 初始化为0
int main(void) {
Box b; // 调用默认构造初始化了
int j; //没有初始化
cout << i << " " << j << endl;
cout << b._i << " " << b._j << endl;
cout << "count1 = " << Box::count1 << endl;
cout << "count2 = " << Box::count2 << endl;
cout << "count3 = " << Box::count3 << endl;
cout << "avg = " << Box::avg << endl;
return 0;
}