类数据成员的初始值
类内初始值必须使用等号的初始化形式或者花括号括起来的直接初始化形式。
#include "stdafx.h"
#include <cstdio>
#include <iostream>
class People
{
public:
int height_=170;
int age_{20};
};
int main()
{
People peopleA;
std::cout << peopleA.height_ << std::endl;
std::cout << peopleA.age_<< std::endl;
system("pause");
return 0;
}
可变数据成员
如果需要在const成员方法中修改一个数据成员的值,那么需要将这个数据成员修饰为mutable。即用mutable修饰的数据成员不受const成员函数的限制。
class People
{
public:
void printSelf() const;
mutable int printcount_;
};
void People::printSelf() const
{
std::cout << "people" << std::endl;
//不用mutable修饰的话,编译器会报错
printcount_++;
}