//用成员初始化值初始化Increment类的const数据成员increment
//
#include <iostream>
using namespace std;
class Increment{
public:
Increment( int c = 0, int i = 1);
void addIncrement() { count += increment;}
void print() const;
private:
int count;
const int increment;
};
Increment::Increment( int c, int i):increment(i) //increment(i)等价于 increment = i; 注意:increment的大小写,大写的定义为类,小写的是成员常量
/*如果需要多个成员初始化值,则可以将其放在
冒号后面以逗号分隔的列表中。所有数据成员都可以用成员初始化值的语法进行初始化
因为increment声明为常量,而且没有赋初值,所以要使用成员初始化值来初始化此常量
*/
{
count = c;
//intcrement = i; 常量类成员〔const对象和const“变量”)要用成员初始化值的语法初始化,而不能用赋值语句。
}
void Increment::print() const
{
cout << "count = " << count
<< ",increment = " << increment << endl;
}
int main()
{
Increment value(10,5);
cout << "Before incrementing: ";
value.print();
for (int j = 0; j < 3 ; j++){
value.addIncrement();
cout << "After increment " << j << ": ";
value.print();
}
return 0;
}