簡體   English   中英

如何將類更改為模板類?

[英]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以外的其他類型,例如intfloat等。 如果我們更抽象地考慮它,則需要將類用於類型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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM