我最近了解到轉換const對象引用const對象
Object const & object();
Object o = object();
會導致一個副本。所以我很好奇當
Object const o = object();
會做。
我最近了解到轉換const對象引用const對象
Object const & object();
Object o = object();
會導致一個副本。所以我很好奇當
Object const o = object();
會做。
它也會複製一份。
爲了避免副本,您可以創建一個參考綁定到相同的對象,該函數返回引用:
Object const & o = object();
而且複製,你o
應該只要它的構造一個東西。在這裏複製構建。
引用不是對象,但它們只是一個別名,因此分配引用與分配對象相同。
Object const & object();
Object o = object(); //here o is not constant. you can do o=object() again.
Object const o = object(); //here o is constant. you can't do o=object() again after its initialization.
嚴格來說,你不知道Object是否是一個具有常數賦值運算符的類。這會很愚蠢,但可能。 – 2013-02-16 14:42:20
@KerrekSB的權利。標題是真的讓人誤解。我只是把這個東西當作課堂。 +1從我身邊。你的答案被接受,而沒有upvote。奇怪。 – Arpit 2013-02-16 14:43:59
第一個是函數聲明。 – 0x499602D2 2013-02-16 14:26:35
有史以來最糟糕的命名慣例... – 2013-02-16 14:26:41
@David我認爲它應該是。但它也與我的頭腦混爲一談。 – 2013-02-16 14:27:11