【发布时间】:2013-11-14 03:27:44
【问题描述】:
我得到编译器错误
no match for 'operator<<' in 'std::cout << VertexPriority(2, 4u)'
在主类中提到了这个操作符重载,但是我想不明白错误在哪里。
这里有运算符重载行,我在类定义中实现了。
std::ostream& operator<<(std::ostream& out) const { return out << "Vertex: " << this->vertex << ", Priority: " << this->priority; }
顶点和优先级是整数和无符号整数。
在主课中我正在尝试这样做:
std::cout << VertexPriority(2, 3) << std::endl;
【问题讨论】:
-
你不会像那样定义插入操作符,除非你打算在你的对象中插入一个 ostream(我可以保证它是 not )。请参阅常见运算符重载部分in this answer。
-
应该如何定义?
-
查看我之前评论中的链接文章or click here
标签: c++ compiler-errors operator-overloading iostream