尝试将undefined reference to
内联为友元函数时,我收到编译器错误operator!=
。
以下是一个例子:
// color.hpp
class Color
{
friend bool operator==(const Color& lhs, const Color& rhs);
inline friend bool operator!=(const Color& lhs, const Color& rhs);
};
// color.cpp
bool operator==(const Color& lhs, const Color& rhs)
{
}
inline bool operator!=(const Color& lhs, const Color& rhs)
{
}
我无法在头文件中实现运算符,因为这会产生多个定义错误。
我正在使用--std=c++11
编译,g ++ 5.2。
答案 0 :(得分:0)
从类定义中删除inline
。
在类定义之后,在头文件中添加以下内容:
inline bool
operator!=(const Color& lhs, const Color& rhs)
{
return !(lhs == rhs);
}
删除源文件中的定义。