【发布时间】:2013-02-20 07:25:21
【问题描述】:
我有一个类Table,它有一个成员函数std::vector<Attribute> attributeVec();,其中Attribute 是一个单独的类。
我正在处理想要做某种形式的代码
if (tableA.attributeVec() == tableB.attributeVec()){ ...
其中tableA 和tableB 是Table 对象。
我在 Visual Studio 2012 中遇到了很多奇怪的编译器错误,比如
binary '==' : no operator found which takes a left-hand operand of type 'const DatabaseAPI::Attribute' (or there is no acceptable conversion)
所以我相信向量不能像那样进行比较。 如果我可以编译这段代码,我的生活会更轻松,但我该怎么做呢?我可以定义运算符吗?我是否需要重写一些 Attribute 类以便可以比较它们?
细节:编写 API 后,我得到了一组测试,如果合理的话,这些测试需要工作。虽然我相信这至少对我的代码做出了不合理的假设(给定我的 API),但在我的代码中实现它并没有什么坏处。
谢谢!
【问题讨论】:
标签: c++ vector comparison