【发布时间】:2015-06-08 19:30:50
【问题描述】:
我想知道提供一个返回引用而不是公开成员的公共访问方法可能是什么原因。 QPoint 有方法 int& rx 和 int& ry 可以让我直接操作坐标。
我猜它的实现看起来是这样的:
public:
int& rx(){return x;}
private:
int x;
到目前为止,我唯一的想法是:通过保持成员私有和“仅”提供引用,类仍然可以更改为使用不同的数据类型作为其坐标,同时仍然“以某种方式”返回引用到一个 int。然而,这个“不知何故”总是需要一个 int 成员。一旦引用泄露,成员实际上就不能再改变了。所以这不可能是原因。
在related question 中,接受的答案建议宁愿公开成员而不是返回参考。
返回引用而不是公开成员有什么好处(在一般情况下)?或者这只是 Qt 特定(QPoint 特定?)设计?
【问题讨论】:
-
这对于调用 C++ 的 C# 包装器很有用,因为可以使此类函数显示为属性。
标签: c++ qt reference private public