0
我嘗試寫一些數學代碼的項目,我偶然發現了一個有趣的問題:在線模板功能
template<class T> class Radian;
template<class T> class Degree;
template <class T>
class Radian
{
public:
T mRad;
public:
Radian(const Degree& d);
};
template <class T>
class Degree
{
public:
T mDeg;
public:
Degree(const Radian& d);
};
inline Radian::Radian (const Degree& d)
{
}
inline Degree::Radian (const Radian& d)
{
}
注意,代碼是大,但我去掉不必要的功能,這樣你就可以更好地理解。
我明白模板是如何工作的,我知道它們是在編譯時生成的,但對於這個特殊的例子我並不完全理解我應該使用什麼語法。我意識到在構造函數中應該有一個模板參數,但我不知道如何編寫它。從我看到的,我可能不得不使用另一個模板,但它會很好使用相同的T,因爲我不會從Degree_float轉換爲Radian_double。
任何人都可以對此有所瞭解嗎?
謝謝。
並確保您已將所有模板化方法放入頭文件中。 – boto 2012-07-16 15:37:30
..也許應該提到他/她在'inline Degree :: Radian(const Radian&d)' – 2012-07-16 15:38:39
中使用了一個錯誤的構造函數名稱並取掉了內聯關鍵字,因爲模板是自動內聯的。 – blockchaindev 2012-07-16 15:39:11