Const Ref to const Pointer

时间:2015-03-30 10:04:17

标签: c++ oop pointers

我正在使用一个我无法更改的库,并且已经设置了一个完成库的任务。

虽然我完成了任务并且它有效,但我并不理解为什么它有效以及我是否应该这样做。

我在cpp文件中有一个函数

void Foo (const String &someName)
{
    OtherFoo (&someName)
}

其中Foo传递对const字符串的引用,而OtherFoo需要一个指向要传递给它的const字符串的指针。

所以基本上ref是const string&,需要作为const指针传递给OtherFoo(const &const *

我做得好吗? (将ref的地址传递给需要指向const字符串的指针的函数)

我是如何通过论证的?有人可以解释为什么它有效吗?

非常感谢

1 个答案:

答案 0 :(得分:2)

是的,这是一种正确的方法。实际上,取一个引用的地址实际上会产生the address of the referent

因此,在这种情况下,表达式&someName的类型实际上是const String *

注意不要混合指针的常量和指针的常量。在这种情况下,当你说“const指针”时,它实际上是指向const的指针,这不是一回事。