當試圖編譯下面的代碼:C++調用模板功能錯誤
int main(){
Array<int> *testArray = new Array<int>(5);
testArray->initArray<int>(testArray);
testArray->printArray<int>(testArray);
return 0;
}
使用這個模板:
template<typename T>
class Array{
public:
Array(int size){
size = size;
data = new T[size];
};
Array<T> addData(T dataToAdd){
Array <T> *tmp = new Array <T> (this->size);
tmp = this->data;
Array <T> *newData = new Array<T> (this->size + 1);
for (int i = 0; i < this->size + 1; ++i){
if (i < this->size){
newData->data[i] = tmp[i];
}
else{
newData->data[i] = dataToAdd;
}
}
return newData;
};
void initArray(T arrayToInit){
for (int i = 0; i < this->size; ++i){
this->data[i] = i;
}
};
void printArray(T arrayToPrint){
ostringstream oss;
string answer = "";
for (int i = 0; i < arrayToPrint->size; ++i){
oss << arrayToPrint[i] + " ";
}
answer = oss.str();
cout << answer << endl;
};
private:
int size;
T* data;
};
我碰到下面的錯誤在我的INT主要():
「預期初始表達式在'int'之前」
對於我的兩個函數調用(initArray a nd printArray)。我對C++相當陌生,特別是對模板有一點經驗,任何建議都將不勝感激。感謝您的時間。
編輯:謝謝大家的迴應和建設性的批評,感謝大家的幫助,我已經取得了很大的進步。
'initArray()'應該是'initArray()'但是這是你的問題僅僅是開始。 –
'initArray'和'printArray'的參數沒有用處。他們應該被刪除。 – owacoder
到目前爲止,感謝您的反饋,您發現的任何其他問題都可以幫助您,謝謝! – Biggytiny