-1

一般的なアイテムを使用するキューを作成しようとしています。次のコードでエラーが発生します。

別のクラス内でテンプレート クラスを使用する方法は?

これが私がこれまでに試したことです:

#include <iostream>
using namespace std;

template<class T>
class Item
{
public:
    Item(const T & item)
        : itemVal(item)
    {
    }

private:
    T itemVal;
};

class MyQueue
{
public:
    // Error #1
    void InsertNode(const Item & item); 

private:
    struct Node {
        // Error #2
        Item item; 

        struct Node * next;
    };
};

int main()
{
    Item<int> * element = new Item<int>(9);
    return 0;
}
4

2 に答える 2

2

Item型ではなく、クラス テンプレートです。テンプレート パラメータを指定する必要があります。この場合、int:

void InsertNode(const Item<int> & item)

struct Node{
    Item<int> item;
    Node<int> * next;
};

それ以外の場合は、テンプレートを作成MyQueueしてクラス化できます。Node

于 2013-04-22T12:41:33.830 に答える