我在使用C++中編寫的類時出現問題。我剛剛開始學習C++,我很快找到了正確的方法,但在採用「正確」方式後,我仍然有一個錯誤....所以我提前道歉,如果這只是一些愚蠢的誤解(但我懷疑它...)相關的代碼如下如何使用模板類C++
ArrayList.h
#ifndef ARRAYLIST_H_
#define ARRAYLIST_H_
#include <string>
template<class T>
class ArrayList {
private:
//Data fields-------------------//
T *array;
int size;
int capacity;
bool sorted;
//Methods-----------------------//
void reallocate();
void reallocate(int newSize);
T* mergeSort(T* array, int arraySize);
public:
//Constructors------------------//
ArrayList();
ArrayList(int theSize);
//Methods-----------------------//
//Operations
bool add(T element);
bool add(T element, int index);
bool add(ArrayList<T> list);
bool add(ArrayList<T> list, int index);
std:string toString();
};
#endif /* ARRAYLIST_H_ */
ArrayList.cpp
#include "ArrayList.h"
//~Constructors-----------------------------------------------
/**
* Default constructor,
* creates a 20 element ArrayList, of type T.
*/
template<class T>
ArrayList<T>::ArrayList() {
array = new T[20];
capacity = 20;
size = 0;
}
//~Methods---------------------------------------------------
/**
* Adds the passed in element to the end of the ArrayList.
*
* Runs in O(n) in worst case, where reallocate is called.
*
* @param element the element to add to the array.
*/
template<class T>
bool ArrayList<T>::add(T element) {
bool value = false;
if (element != NULL) {
if ((size - 1) == capacity) {
value = reallocate();
}
if (value) {
array[size] = element;
size++;
}
}
return value;
}
ArrayListTest.cpp
#include "ArrayList.h"
#include <iostream>
int main(void) {
using namespace std;
ArrayList<int> myList();
myList.add(184387);
myList.add(14);
myList.add(147);
myList.add(1);
myList.add(-37);
myList.add(584);
myList.add(-2147);
myList.add(0);
myList.add(-75);
myList.add(147);
myList.add(-37);
myList.add(0);
myList.add(25);
myList.add(187);
myList.add(92);
myList.add(-17);
cout << myList.toString();
}
錯誤發生在TestArrayList.cpp文件中。我在所有添加電話和cout電話上都有錯誤。
上加入號召的錯誤是:
request for member 'add' in 'myList', which is of non-class type 'ArrayList<int>()'
在COUT調用錯誤是:
Method 'toString' could not be resolved
任何人都知道我在做什麼錯在這裏?
注,有非標準類具有類似功能:'的std ::矢量' –
RiaD
2012-08-03 03:30:38
啊,我知道,我只是寫這封信,感受一下C++和磨練自己的技能....一個LinkedList的下一 – Ethan 2012-08-03 11:46:53