标签:public 通过 nbsp 3.1 ret stat size pre vat
常量:对于既需要共享、又需要防止改变的数据。在程序运行期间不可改变。
1、常对象
数据成员值在对象的整个生存期内不能改变。在定义时必须初始化,而且不能被更新。
常对象,只能调用常成员函数,保证常对象的数据成员不被改变。
class point { public: point(int i, int j) { x = i, y = j; } private: int x, y; }; // 定义常对象 point const a(3, 4); // 定义时,初始化
2、常成员变量
常数据成员,一经初始化就不可改变。构造函数对其进行初始化,只能通过初始化列表。
通常把常数据成员定义为静态成员,使其成为类的一个常量。
初始化实例:
class circle { public: circle(int r, int i); void print(); private: int ri; const int a; static const float pi; //静态常数据成员 }; // //静态常数据成员,类外初始化 const float circle::pi = 3.14; // 常数据成员只能通过初始化列表,获得初值 // a 为常成员数据,不能把 a=i 写到构造函数体内,必须通过初始化列表获取初值 // 普通成员也可在初始化列表中赋值 circle::circle(int r, int i) :a(i), ri(r) { } void circle::print() { cout << ri << endl; } void main() { circle x(100, 0); x.print(); system("pause"); return; }
3、常成员函数
class R { public: R(int ra, int rb) { r1 = ra; r2 = rb; } void change(int, int); void print() const; // 定义常成员函数 private: int r1, r2; }; void R::change(int a, int b) { r1 = a; r2 = b; } void R::print() const { cout << r1 << ", " << r2 << endl; } void main() { R a(5, 4); a.print(); // 调用常成员函数 print() // 定义常对象,不可调用普通函数 change() const R b(20, 25); b.print();// 调用常成员函数 print() system("pause"); return; }
标签:public 通过 nbsp 3.1 ret stat size pre vat
原文地址:https://www.cnblogs.com/eilearn/p/10218454.html