1
我試圖寫一個通用模板類,但我不斷收到這個錯誤,當我嘗試實現:類模板沒有匹配函數調用T :: T()
no matching function for call to type_impl::type_impl()
其中type_impl是我正在嘗試使用該類的類型。
這裏是我的代碼:
class BaseClass {
protected:
// Some data
public:
BaseClass(){
// Assign to data
};
};
template <class T>
class HigherClass : BaseClass {
private:
T data;
public:
// Compiler error is here.
HigherClass(){};
// Other functions interacting with data
};
class Bar {
private:
// Some data
public:
Bar(/* Some arguments*/) {
// Assign some arguments to data
};
};
// Implementation
HigherClass<Bar> foo() {
HigherClass<Bar> newFoo;
// Do something to newFoo
return newFoo;
};
您可能想補充爲什麼會出現這種情況。例如。 「當你嘗試創建'HigherClass'時,它有一個成員'Bar data',它需要創建一個默認的構造函數。」 –
clcto
@clcto謝謝,我正在這樣做。我希望現在更清楚。 – juanchopanza
即使她沒有嘗試編譯它,OP的代碼也會不合格... –