C++编程思想 第1卷 第8章 常量 类 类里的const 构造函数初始化列表

常数表达式使用常量的地方之一是在类里

在一个类里,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

猜你喜欢

转载自blog.csdn.net/eyetired/article/details/81153431