如何将“string*”的内容转换为“string*”? 到“const string” 在 C++ 中?

发布于 2024-07-24 03:32:37 字数 221 浏览 4 评论 0原文

例如,如果我有以下内容:

void foo(string* s)
{
    bar(s); // this line fails to compile, invalid init. error
}

void bar(const string& cs)
{
    // stuff happens here
}

我需要进行哪些转换才能使调用栏成功?

For example, if I have the following:

void foo(string* s)
{
    bar(s); // this line fails to compile, invalid init. error
}

void bar(const string& cs)
{
    // stuff happens here
}

What conversions do I need to make to have the call the bar succeed?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

情深已缘浅 2024-07-31 03:32:38

将其更改为:

bar(*s);

Change it to:

bar(*s);
烟酒忠诚 2024-07-31 03:32:38
void foo(string* s)
{
    bar(*s);
}

s 指向一个字符串,而 bar 需要一个(对字符串的引用),因此您需要为 bar 提供 s< /code> 指向。 “s 指向什么”的拼写方式是 *s

void foo(string* s)
{
    bar(*s);
}

s points to a string, and bar requires a (reference to a) string, so you need to give bar what s points to. The way you spell "what s points to" is *s.

乖乖 2024-07-31 03:32:38

将指针转换为引用时,重要的是要确保您没有尝试转换 NULL 指针。 编译器必须允许您进行转换(因为通常它无法判断它是否是有效的引用)。

void foo(string* s)
{
    if(0 != s){
      bar(*s);
    }
}

* 运算符是 & 的逆运算符。 操作员。 要将引用转换为指针,请使用 & (地址)。 要将指针转换为引用,请使用 *(内容)。

When converting a pointer to a reference it is important to make sure that you are not trying to convert a NULL pointer. The compiler has to allow you to do the conversion (because in general it can't tell if it is a valid reference).

void foo(string* s)
{
    if(0 != s){
      bar(*s);
    }
}

The * operator is the inverse of the & operator. To convert from a reference to a pointer your use & (address of). To convert a pointer to a reference use * (contents of).

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文