當試圖將operator!=
作爲朋友函數內聯時,出現編譯器錯誤undefined reference to
。嵌入式運算符!=未定義的引用
下面是一個例子:
// 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。
如果您在聲明朋友函數時刪除'inline',是否可以執行此項工作? – vu1p3n0x
不,這沒有幫助 – user3728501