gpt4 book ai didi

c++ - 类成员变量的setter怎么写?

转载 作者:行者123 更新时间:2023-11-30 04:20:08 25 4
gpt4 key购买 nike

我正在尝试用 C++ 为类成员变量编写一个带有 getter 和 setter 的简单类。 setter/getter 工作正常,但我不能写二传手。是否可以用 setter 覆盖“m_var”,或者这是否仅适用于指针变量?

class Foo: public QObject {
Q_OBJECT
public:

MyOtherClass& getVar() {
return m_var;
}

private:
MyOtherClass m_var;
};

最佳答案

应该是这样的:

// this is your setter
// you can set the var parameter as const because it is just copied to var
void setVar(const MyOtherClass& var){m_var = var;}

//this is your getter
MyOtherClass& getVar() {return m_var;}

// also this getter should be declared as const because you return a copy
// of m_var and thus you do not modify the object
MyOtherClass getVarByCopy() const {return m_var;}

下面的代码可以用 g++ 编译:

class A
{
public :
int someInt;
};

class B{
A m_var;
public:
void setVar(const A& var){m_var = var;}
A& getVar() {return m_var;}
};

int main(int argc, char* argv[])
{
B b;
A a;
a = b.getVar();
b.setVar(a);
return 0;
}

关于c++ - 类成员变量的setter怎么写?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15383167/

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