繁体   English   中英

将值传递给const参考参数?

[英]Passing value to const reference parameter?

我无法在这里或通过谷歌找到类似的问题,可能是因为我不知道我是否提出了正确的问题,所以不确定标题是否正确。 但我正在使用看起来像这样的代码:

Foo * foo = new Foo();
add(*foo); //Couldnt find any similar questions on this syntax?

void add(const Foo & foo){

//What exactly is foo here? How can i manipulate its members, foo. or foo-> ?

} 

'foo'是一个不变的参考。 您可以通过foo.fred,foo.method()等访问其成员,但不能更改任何数据成员或调用任何非const方法。

add方法中的变量foo是一个常量引用。 它的行为就像一个指针,它不会复制对象:你与它交互就好像它是对象本身一样。 与指针不同,引用不能为NULL ,也不能重新赋值。 您使用点与它进行交互. 运算符而不是->运算符。

void add(const Foo & foo){
    cout << foo.first_member << endl;
    foo.const_member_function();
}

由于foo是一个常量引用,你可以阅读foo的成员,但你不能分配它们。 此外,对foo引用的成员函数的任何调用都限于明确标记为const

只要foo不为NULL ,使用解除引用的foo调用add可以了。 通过解除引用NULL指针来进行引用是未定义的行为。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM