A-A*_*A-A 7 c++ implementation header getter-setter
我对C++比较陌生,我认为我的问题最好通过例子来理解.在我的头文件中,假设我有
class myClass{
public:
double getVar1();
void setVar1(double newVar1);
void copyVar1(myClass* dat);
private:
double var1;
};
Run Code Online (Sandbox Code Playgroud)
在我的实现.cc文件中,在实现copyVar1方法时,我应该这样做
void myClass::copyVar1(myClass* dat){
var1 = dat->var1;
}
Run Code Online (Sandbox Code Playgroud)
要么
void myClass::copyVar1(myClass* dat){
var1 = dat->getVar1();
}
Run Code Online (Sandbox Code Playgroud)
在第二种情况下,我使用getter方法代替.两者都可以在Visual C++中正常工作,但我想知道在实践中哪个更好用.
谢谢您的意见!
最佳实践?重载赋值运算符而不是编写方法。
myClass & myClass::operator=(const myClass & dat)
{
var1 = dat.var1; // or dat.getVar1()
return *this;
}
Run Code Online (Sandbox Code Playgroud)
至于使用场地还是叫二传……这都是个人喜好的问题。如果你的 getter 有一些副作用,那么你可能应该调用它,否则,使用该字段。
所以,一个很大的“取决于”。