我有这段代码:
#include<iostream>
#include<string>
class Test
{
public:
std::string& GetText()
{
return text;
}
void Display() { std::cout << text << std::endl; }
private:
std::string text;
};
int main()
{
Test test;
test.GetText() = "Testing";
test.Display();
}
现在这个引用的函数就像一个函数名下的get和setter。所以我想知道使用这种方法是否有益,或者使用单独的get和set方法更有利。或者让变量公开更有意义。
答案 0 :(得分:1)
两个版本之间在性能,行为等方面没有差异(或至少没有太大差异)。但是参考版本还需要注意其他事项:
Point
。您将无法提供对点的极坐标表示的引用访问权限,也无法轻松地将实现更改为极坐标,因为在此之后引用了getX()
和getY()
个访问器不会再工作了。phi
必须介于0
和2*pi
之间。你不能拯救自己,例如p.phi() = 2500.4;
因此,虽然在某些情况下,引用的访问权限很有用,但您应该在大多数情况下使用经典的getter和setter方法。