我有Point
類,它有X
,Y
和Name
作爲數據成員。我重載C++中的「未定義符號」錯誤
T operator-(const Point<T> &);
這種計算兩個點之間的距離,並返回一個值
template < typename T>
T Point<T>::operator-(const Point<T> &rhs)
{
cout << "\nThe distance between " << getName() << " and "
<< rhs.getName() << " = ";
return sqrt(pow(rhs.getX() - getX(), 2) + pow(rhs.getY() - getY(), 2));;
}
的main
功能
int main() {
Point<double> P1(3.0, 4.1, "Point 1");
Point<double> P2(6.4, 2.9, "Point 2");
cout << P2 - P1;
return EXIT_SUCCESS;
}
但問題是,這個程序不編譯,我收到此錯誤:
Undefined symbols:
"Point<double>::operator-(Point<double>&)", referenced from:
_main in main.o
ld: symbol(s) not found
collect2: ld returned 1 exit status
任何幫助表示讚賞...
你有沒有包括運營商的標頭中的實現,或在.cpp文件? – juanchopanza 2012-07-24 10:25:51
@juanchopanza是的。我只有一個.cpp文件,它具有實現。 – 2012-07-24 10:31:08
看到我的回答下面 – 2012-07-24 10:34:07