【发布时间】:2013-04-25 02:34:25
【问题描述】:
我在 VS 2012 上使用 Visual Studio Native Unit Test 时遇到一个奇怪的问题。 我有一个这样的坐标类:
#ifndef COORDINATES_HPP
#define COORDINATES_HPP
#include <iostream>
namespace Core {
class Coordinates {
public:
Coordinates();
Coordinates( int x, int y );
Coordinates( const Coordinates © );
~Coordinates();
void operator=( Coordinates coordinates );
void operator+=( Coordinates coordinates );
void operator-=( Coordinates coordinates );
Coordinates operator+( Coordinates coordinates );
Coordinates operator-( Coordinates coordinates );
bool operator==( Coordinates coordinates );
bool operator!=( Coordinates coordinates );
int getX() const { return m_x; }
int getY() const { return m_y; }
void setX( const int &val ) { m_x = val; }
void setY( const int &val ) { m_y = val; }
protected:
int m_x, m_y;
};
}
所以当我使用时出现问题: 断言::AreEqual(坐标(0,0),坐标(0,0));
发送的错误是: 错误 1 错误 C2678:二进制“==”:未找到采用“const Core::Coordinates”类型的左侧操作数的运算符(或没有可接受的转换)c:\program files (x86)\microsoft visual studio 11.0\vc\unittest\include\cppunittestassert.h 129 1 UnitTest1
你有解决这个问题的想法吗?
PS:对不起,我的英语不是我的母语。
【问题讨论】:
标签: c++ unit-testing visual-c++ visual-studio-2012