实现文件中的C++ Getters-Setters

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++中正常工作,但我想知道在实践中哪个更好用.

谢谢您的意见!

Eti*_*tel 4

最佳实践?重载赋值运算符而不是编写方法。

myClass & myClass::operator=(const myClass & dat)
{
   var1 = dat.var1; // or dat.getVar1()
   return *this;
}
Run Code Online (Sandbox Code Playgroud)

至于使用场地还是叫二传……这都是个人喜好的问题。如果你的 getter 有一些副作用,那么你可能应该调用它,否则,使用该字段。

所以,一个很大的“取决于”。