我很好奇,私有對象的屬性,如果這是assignement修改通過方法,它返回參考
class Foo {
int x_;
public:
int & x() {
return x_;
}
};
我的老師正在assignement這樣的正確方法:obj.x() = 5;
但國際海事組織,這不是做這件事的正確方法,它並不明顯,在這裏使用setter會更好。這是違反清晰和乾淨的代碼?如果我們認爲我們應該像代碼不好的書一樣閱讀代碼,對嗎?誰能告訴我,如果我是對的? :)
你能詳細闡述一下你在創建obj對象的地方嗎? 按照上面的類樣本,有一個基本問題是你將每個事物都保存爲私有的,所以實際上obj.x()不會在類之外工作。 如果你沒有指定訪問說明符,它默認爲私有的 – Ajay
一般來說不是「錯誤」或「正確」,但是隻有數百萬種不同的做事方式,每種行爲都有點不同,如果你想要這種行爲(即揭露一個私人成員的引用),那就好了。看看例如'std :: vector',它的'[]'或'at()'返回一個引用,可以讓你修改這些值,沒有什麼不好的。 – user463035818
順便說一句,在你的例子中變量和方法都是私人的,這使得它有點沒有意義.... – user463035818