gpt4 book ai didi

c++ - 运算符<<计算器

转载 作者:可可西里 更新时间:2023-11-01 18:05:38 24 4
gpt4 key购买 nike

考虑以下代码:

class TextMessage{
public :
TextMessage(){};
TextMessage(std::string _text):text(_text){}
std::string text;
friend std::ostream & operator<<( std::ostream & os, const TextMessage & m);
};
std::ostream & operator<<( std::ostream & os, const TextMessage & m){
return os << "text message : " << m.text;
}

到底为什么:

  • Visual 2010 是否发出 C4717 warning在运算符 <<
  • std::cout << textMsgInstance;是否如 Visual 预测的那样被 stackoverflow 崩溃?

顺便说一下,替换 m.text通过 m.text.c_str()有效。

最佳答案

我猜你没能 #include <string> .因此,当编译器输出 std::string 时,它不能,并开始寻找隐式转换——而你的 TextMessage 隐式构造函数看起来就像账单一样。但是等等 - 现在我们在 TextMessage 的输出函数中输出一个 TextMessage,然后 bam。

关于c++ - 运算符<<计算器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6203943/

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