2016-05-14 169 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