簡體   English   中英

創建部分模板專業化會引發錯誤

[英]Create a partial template specialization throws an error

我有一個示例類,如果該類是某種類型,則需要專門處理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;
    }

MyVector需要2個模板參數,例如

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

否則,您需要為第二個模板參數提供默認值:

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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