2016-05-14 164 views
0

我是C++的新手,希望完成類似這樣的工作,但它不像我期望的那樣工作。C++在變量中保存對象的引用

Object& object = Object(); 

我想將引用保存在變量object中創建的對象中。
我該怎麼做?謝謝。

編輯: 我想將對象的引用傳遞給另一個對象的構造函數。它必須是引用(或指針?),因爲它是一個沒有太多內存的arduino代碼。

+5

你不能這樣做,但也許如果你指定你真正需要的人也許能夠提出其他建議。 – juanchopanza

+2

你可以做'Object o;',然後'Object&o_ref = o;' – ArchbishopOfBanterbury

+0

你需要'Object && object = Object();'如果有疑問,加倍標點符號.. –

回答

3

有兩種合法途徑通過參考變量存儲:

// o1 is const 
const Object& o1 = Object(); 

// o2 is mutable 
Object&& o2 = Object(); 

有C++中的特殊規則,保持活着的對象,只要引用是在範圍內。

你可能想要做的僅僅是存儲對象是什麼:

Object o = Object(); 
+0

我可以將對象存儲在一個變量中,並將其傳遞給我需要傳遞給它的每個構造方法:Object &o? – Jochim

+0

@Jochim如果你傳遞它的構造函數採用'const Object&'或'Object&'參數,那麼你可以簡單地將'Object'實例傳遞給它。 – ArchbishopOfBanterbury

+0

@Jochim當一個函數需要一個對象的(非const)引用時,這意味着它可能會修改它的值。但這並不意味着你不能將對象實例傳遞給對象和參數。 – Quest