gpt4 book ai didi

c++ - 重载 I/O 运算符 C++

转载 作者:太空狗 更新时间:2023-10-29 20:30:14 24 4
gpt4 key购买 nike

我正在尝试重载 << 运算符。我期望输出为 InitializingHello WorldOut 但它只是输出 Hello World。我无法弄清楚我的代码有什么问题。感谢您的帮助。

  #include <iostream>
using namespace std;


ostream &operator << (ostream &out, const char* &s)
{
out << "Initializing" << s << "Out";
return out;
}

void main() {

cout << "Hello World" << endl;
system("Pause");
}

最佳答案

"Hello World"实际上是 const char[12] 类型,它可以衰减为 const char * 类型的 r 值(临时) , 但你的函数需要一个 referenceconst char* ,并且您可能知道,您不能将引用绑定(bind)到非常量右值。所以你的运算符(operator)没有被调用,而是标准的 ostream &operator << (ostream &out, const char* s)是。

附言。请不要写void main() .应该是int main()除非你在嵌入式系统中(不太可能)。

关于c++ - 重载 I/O 运算符 C++,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7604154/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com