gpt4 book ai didi

c++ - 返回对私有(private)成员与公共(public)成员的引用

转载 作者:搜寻专家 更新时间:2023-10-31 01:39:46 25 4
gpt4 key购买 nike

我想知道提供返回引用而不是公开成员的公共(public)访问方法的原因是什么。 QPoint有方法 int& rxint& ry 让我直接操作坐标。

我想这个实现看起来与此类似:

public:
int& rx(){return x;}
private:
int x;

到目前为止我唯一的想法是:通过保持成员私有(private)并“仅”提供引用,该类仍然可以更改为其坐标使用不同的数据类型,同时仍然“以某种方式”返回引用到一个整数。但是,这个“不知何故”总是需要一个 int 成员。一旦引用泄露,成员实际上就不能再改变了。所以这不能成为原因。

related question 中接受的答案建议宁愿公开成员而不是返回引用。

返回引用而不是公开成员(在一般情况下)有什么好处吗?或者这只是 Qt 特定的(QPoint 特定的?)设计?

编辑:QPoint in Qt4

最佳答案

一般来说,通过引用返回一个成员和拥有一个公共(public)成员一样破坏封装,这两种情况都不被鼓励。

我想当一个类足够简单时(普通的旧数据——预计接口(interface)和数据都不会改变),可以将其所有成员公开。返回非 const 引用具有相同的效果。所有封装都被破坏了。

关于你的问题,没有任何好处。

除了我的回答,还有类似的回答here

关于c++ - 返回对私有(private)成员与公共(public)成员的引用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30717521/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com