【发布时间】:2014-10-25 11:53:27
【问题描述】:
对于我的一个 cpp 程序,我创建了一些类(像往常一样,私有部分中的变量,以及公共部分中用于访问的函数)。但是现在我有一个问题,我想通过引用访问这个类中的几个变量,例如如果我通过getVariable(void) 获得它们,我想直接修改它们。我已经写了第二个函数setVariable(value)。但是这个函数只有在我只想写入变量时才可用。
如何解决在公共类函数返回的私有变量中可以读写的问题?
我已经阅读了这些问题:Passing class member function return value by reference in C++ 和 Return a reference by a class function and return a whole object in c++?,但它们不适合我的问题。
例子:
class A
{
private:
int x;
public:
int getX(void);
void setX(int y);
}
int A::getX(void)
{
return A::x;
}
void A::setX(int y)
{
A::x = y;
}
我想这样称呼它
A testA;
testA.setX(2);
testA.getX() = 5; // Ok, seems a bit strange, but some of my other functions require that...
//A::x is now 5
std::cout << testA.getX();//Output is 5
这可能吗?还是我应该重写其他函数?
【问题讨论】: