类成员函数未编译

时间:2017-04-02 10:53:26

标签: c++ function oop g++ member

我决定为我的库编写自己的Vector类,但是当我尝试使用g++ -Wall -std=c++11 -O a.cpp -c -o a.o编译它并使用nm a.o从输出文件中读取符号时,我看不到任何成员函数我为该课程写过,当我尝试将它与使用它们的程序链接时,我得到undefined reference to个错误。 这是a.h文件:

template<typename T> class Vector {
    private:
        int vsize;
        const int maxsize=2147483647;
        T* array;
    public:
        Vector();
        ~Vector();
        bool push_back(T t);
        bool pop_back(T* t);
        bool replace(int element, T t);
        bool resize(int newsize);
        bool getP(int element, T* t);
        bool clear();
        T* getArray();
        int size();
        T operator[](int n);
};

和a.cpp文件:

#include <stdlib.h>
#include "a.h"

template<typename T> Vector<T>::Vector() {
    vsize=0;
    array=(T*)malloc(sizeof(T)*vsize);
}
template<typename T> Vector<T>::~Vector() {
    free(array);
}
template<typename T> bool Vector<T>::push_back(T t) {
    if(resize(vsize+1))
        return 1;
    array[vsize-1] = t;
    return 0;
}
template<typename T> bool Vector<T>::pop_back(T* t) {
    *t = array[vsize-1];
    return resize(vsize-1);
}
/*
    Other member function definitons...
*/

我正在使用g ++ 5.4.0和nm 2.26.1

0 个答案:

没有答案