[英]How do I change a class to a template class?
我需要將第一行更改為: template <class T> class Node{
class Node {
private:
double data;
Node* next;
public:
Node(double);
virtual ~Node(); //for later use of polymorphismi, review the topic again
friend class Stack; // allows dStack for private member access
};
Node::Node(double data) {
this->data = data;
next = 0;
}
Node::~Node() {
}
但是我不確定我需要更改的所有內部工作。 我是否只需要更改私有數據成員和公共Node函數?
我認為您正在尋找的東西與以下內容相似:
template<typename T>
class Node
{
private:
T data;
Node* next;
public:
Node(const T& d);
virtual ~Node();
// ... etc
};
請注意,您將需要在同一文件中內聯實現模板類,或者將實現包括在頭文件的底部。
關鍵是要更改您的類,以便它可以用於double
以外的其他類型,例如int
, float
等。 如果我們更抽象地考慮它,則需要將類用於類型T
對象,其中T
可以是上面提到的任何類型(甚至更多)。 因此,通常,您需要在類之前放置template <class T>
(將其設置為模板類),並將double
替換為T
類型。
用於類聲明:
template<typename T>
class Node
用於類函數的實現:
template<typename T>
Node<T>::Node()
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.