创建部分模板特化会引发错误

时间:2012-06-12 00:25:08

标签: c++ templates

我有一个示例类,如果类是某种类型,我需要专门化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;
    }

1 个答案:

答案 0 :(得分:0)

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

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

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

template <typename classType, int size = 16>
class MyVector
...