[英]Const reference vs inline getter - C++
我有一個帶有私有字段的類。 該字段只寫在類內部,但必須從外部可讀。 哪個選項更可取,為什么? 首先,使用const引用
class Test {
public:
const int &field; // can read outside
inline Test() noexcept: field(_field) {}
void someMethod() {
_field = 123; // writing occurs only inside the class
}
private:
int _field;
};
或者第二個,使用內聯 getter:
class Test {
public:
void someMethod() {
_field = 123; // writing occurs only inside the class
}
inline int field() const noexcept { // can call outside
return _field;
}
private:
int _field;
};
避免使用引用類型數據成員的原因有很多:
如果你真的想公開一個引用,就作為成員函數的返回類型這樣做:
const int& field() const { return field_; } // avoid leading underscores in application code
但是,通常情況下,返回值會具有更高的性能並且更易於調用代碼使用。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.