【发布时间】:2013-04-09 12:53:30
【问题描述】:
以下是一个例子:
在 circle.h
class circle
{
double _radius;
public:
double getRadius() {return _radius;}
void setRadius(double r) {_radius=r;}
}
在主目录
int main()
{
circle a;
cout<<a.getRadius(); // I want to use "a.radius"
a.setRadius(3.2); // I want to use "a.radius=3.2"
}
所以第一个问题是为什么我们应该使用 get 和 set 函数来访问实例变量而不是直接访问它们?第二个问题是如何做运算符重载,让get和set的函数调用看起来简洁(就像objective-c那样)?
【问题讨论】:
-
“为什么我们应该使用get和set函数来访问实例变量而不是直接访问它们?”有书章节关于值封装。这可能超出了 Stack Overflow 的范围。
标签: c++ objective-c class operator-overloading