何か不足していますか?
class Foo: ...
{
.....
.....
MyOtherClass& getVar() {
return m_var;
}
君の
getVar()
非 const 参照を返すため、実際にはセッターです。
このコードを確認してください。
class MyOtherClass
{
public:
MyOtherClass(int i=10)
{
m_someInt = i;
}
int m_someInt;
};
class QObject
{
};
class Foo: public QObject
{
// Q_OBJECT
public:
MyOtherClass& getVar()
{
return m_var;
}
private:
MyOtherClass m_var;
};
void someFunc()
{
Foo f1;
printf("%d", f1.getVar().m_someInt);
f1.getVar() = 100;
printf("\r\n %d", f1.getVar().m_someInt);
}
私はそのようなデザインのアイデアが好きではありませんが。
getVar() を取得のみで設定しないようにしたい場合は、次のようにする必要があります。
const MyOtherClass& getVar()const {
return m_var;
}