私はAndroid NDK r6とAndroid SDK API 8(2.2)を使用しています。AndroidのC++テンプレートNDK
私はテンプレートを使ってstd :: vectorのような動的リストを実装しようとしていますが、コンパイルされた.oファイルには多くのエラーがあります。
サンプル:
にエラーがないソースファイルで、コンパイルされたファイルの.oで生産されて見ることができるように。
クラス定義:
template <class T>
class ArrayList{
private:
int mSize;
public:
/**
* Construye una lista dinámica vacía.
*/
ArrayList();
/**
* Destructor.
*/
~ArrayList();
/**
* Añade un elemento a la lista.
*
* @param element
* Elemento.
*/
void add (T element);
/**
* Obtiene un elemento de la lista.
*
* @param index
* Índice del elemento. Rango válido de valores: [0, size()]
* @return Elemento de la posición indicada o NULL si el índice no es válido.
*/
T get (int index);
/**
* Elimina un elemento de la lista.
*
* @param index
* Índice del elemento. Rango válido de valores: [0, size()]
*/
void remove (int index);
/**
* Vacía la lista.
*/
void clear();
/**
* Consulta el número de elementos de la lista.
*
* @return Número de elementos.
*/
int size();
/**
* Consulta si la lista esta vacía.
*
* @return true si está vaía, sinó false.
*/
bool isEmpty();
};
クラスの実装:
template <class T>
ArrayList<T>::ArrayList(){
mSize = 0;
}
template <class T>
ArrayList<T>::~ArrayList(){
}
template <class T>
void ArrayList<T>::add (T element){
}
template <class T>
T ArrayList<T>::get (int index){
T element;
return element;
}
template <class T>
void ArrayList<T>::remove (int index){
}
template <class T>
void ArrayList<T>::clear(){
}
template <class T>
int ArrayList<T>::size(){
return mSize;
}
template <class T>
bool ArrayList<T>::isEmpty(){
return true;
}
クラスの使用法:それは
ArrayList<OtherClass> list;
OtherClass foo;
list.add (foo);
「C++」タグが適切なものとして追加されました。 – Mahesh