(一)题目描述
如何使用一个函数实现SetValue和GetValue的功能?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
| #include <iostream> using namespace std; class Obj { public: Obj():value(0) {} void SetValue(int val) { value = val; } int GetValue() { return value; } private: int value; };
|
(二)引用实现
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39
| #include <iostream> using namespace std; class Obj { public: Obj():value(0) {} Obj(int val) { value = val; } void SetValue(int val) { value = val; } int GetValue() { return value; } int& Fun() { return value; } private: int value; };
int main() { Obj obj(10); cout << obj.Fun() << endl; obj.Fun() = 20; cout << obj.Fun() << endl; return 0; }
|
![在这里插入图片描述](data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7)
(三)考虑常对象情况
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47
| #include <iostream> using namespace std; class Obj { public: Obj() :value(0) {} Obj(int val) { value = val; } void SetValue(int val) { value = val; } int GetValue() { return value; } int& Fun() { return value; } const int& Fun()const { return value; } private: int value; };
int main() { Obj obj(10); cout << obj.Fun() << endl;
obj.Fun() = 20;
cout << obj.Fun() << endl;
const Obj cobj(10); cout << cobj.Fun() << endl; return 0; }
|
![在这里插入图片描述](data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7)