0

我有一个示例类,如果该类属于某种类型,我需要在其中专门化 Print 函数。但这根本无法编译。

template <typename classType, int size>
class MyVector
    {
    public:
        classType* innerArray;
        MyVector(){innerArray = new classType[size];}
        ~MyVector(){delete[] innerArray;}

        void push_back(classType val)
            {
            innerArray[0] = val;
            }

        classType& operator[](int index)
            {
            assert(index >= 0);
            return innerArray[index];
            }

        void Print() {
            cout << "Printing Normal" << endl;
            }
    };

void MyVector<double>::Print()
    {
    cout << "Printing Double" << endl;
    }
4

1 回答 1

0

MyVector需要2个模板参数,例如

void MyVector<double, 16>::Print()
    {
    cout << "Printing Double" << endl;
    }

否则您需要为第二个模板参数提供默认值:

template <typename classType, int size = 16>
class MyVector
...
于 2012-06-12T00:48:20.603 回答