常数表达式使用常量的地方之一是在类里
在一个类里,const又部分恢复到它在C语言中的含义。
在每个类对象里分配存储并代表一个值,这个值一旦被初始化以后就不能
改变
在一个类里建立一个普通的const时,不能给它初值
在构造函数里有个专门初始化的地方,这就是构造函数初始化列表,起初用在
继承里
构造函数初始化列表是一个出现在函数参数表和冒号后,在构造函数主体开头
的花括号前的"函数调用列表"
提醒人们,表里的初始化发生在构造函数的任何代码执行之前
//: C08:ConstInitialization.cpp
// From Thinking in C++, 2nd Edition
// Available at http://www.BruceEckel.com
// (c) Bruce Eckel 2000
// Copyright notice in Copyright.txt
// Initializing const in classes
#include <iostream>
using namespace std;
class Fred {
const int size;
public:
Fred(int sz);
void print();
};
Fred::Fred(int sz) : size(sz) {}
void Fred::print() { cout << size << endl; }
int main() {
Fred a(1), b(2), c(3);
a.print(), b.print(), c.print();
getchar();
} ///:~
开始时,显示的构造函数初始化列表的形式容易使人们混淆,因为人们不
习惯把一个内建类型看成好像也有一个构造函数
输出
1
2
3