0
我有了對象的矢量的容器。C++ - 返回指針或const參考
class Container
{
vector<Foo> objects;
我想
- 容器超出範圍後讀過作爲主叫
- 避免調用拷貝構造函數
- 忽略訪問這些對象的問題對這些對象的唯一通道(這永遠不會發生)
基於此,它似乎有我有2個選擇的ge方法。或者返回常量引用一個矢量,或返回指針爲const矢量
const vector<Foo> & getRef() { return objects; }
const vector<Foo> * getPtr() { return &objects; }
當然,如果我來電,我需要確保不調用拷貝構造函數,當我重複。所以我想這個
for (const Foo & f : getRef())
,而不是
for (Foo f : getRef())
現在,我應該返回const引用?或者指向const的指針?有什麼好處和缺點?
通常指針被用來當你回來時可以爲空,但在這種情況下,它是一個載體,因此它不能真正爲空的..我會用const-REF – AlexG
你的第3受歡迎去,恕我直言總是更好,是將該函數(調用getter並使用該引用)帶入Container中 - 因此不需要getter。看到的封裝:(來自維基)「A語言構造便於與對數據進行操作的方法(或其他功能)的數據的捆綁」。 –