小编bot*_*tch的帖子

与“ operator <<”不匹配

我有以下代码:

class A {
  friend std::ostream& operator<<(std::ostream &os, A &a);
};

A a() {
  return A{};
}

int main() {
  std::cout << a(); // error!
  //A aa = a(); std::cout << aa; // compiles just fine
}
Run Code Online (Sandbox Code Playgroud)

在我看来,main中的两行应该相等,但是编译器不同意。第一行不编译!

error: no match for ‘operator<<’ (operand types are ‘std::ostream {aka std::basic_ostream<char>}’ and ‘A’)
   std::cout << a();
             ^
...200 (!) more lines of stderr...
Run Code Online (Sandbox Code Playgroud)

为什么?

c++ gcc

2
推荐指数
1
解决办法
50
查看次数

标签 统计

c++ ×1

gcc ×1