如何将“string*”的内容转换为“string*”? 到“const string” 在 C++ 中?
例如,如果我有以下内容:
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 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
将其更改为:
Change it to:
s
指向一个字符串,而bar
需要一个(对字符串的引用),因此您需要为bar
提供s< /code> 指向。 “
s
指向什么”的拼写方式是*s
。s
points to a string, andbar
requires a (reference to a) string, so you need to givebar
whats
points to. The way you spell "whats
points to" is*s
.将指针转换为引用时,重要的是要确保您没有尝试转换 NULL 指针。 编译器必须允许您进行转换(因为通常它无法判断它是否是有效的引用)。
* 运算符是 & 的逆运算符。 操作员。 要将引用转换为指针,请使用 & (地址)。 要将指针转换为引用,请使用 *(内容)。
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).
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).