c++和Netbeans的未定义引用问题



我有以下文件:

ListaEnc.hpp

#include "Elemento.hpp"
#include <cstdlib>
#include <iostream>
template<typename T>
class ListaEnc {
public:
    ListaEnc();
    ~ListaEnc();
...
}
//Implementation:
template<typename T>
ListaEnc<T>::ListaEnc()
{
    head = NULL;
    size = 0;
}
template <class T>
ListaEnc<T>::~ListaEnc() {
}

main.cpp:

#include "ListaEnc.hpp"
using namespace std;
int main(int argc, char** argv)
{
    ListaEnc<int>* teste = new ListaEnc<int>();
    return 0;
}

Poligono.hpp

#ifndef POLIGONO_HPP
#define POLIGONO_HPP
#include "Ponto.hpp"
#include "ListaEnc.hpp"
#include <string>
using namespace std;
public:
    //Construtores
    Poligono(ListaEnc<Ponto> pontos, string nome);
    Poligono(const Poligono& orig);
    virtual ~Poligono();
    //Metodos
    string obterNome();
    void adicionarPonto(Ponto);
    ListaEnc<Ponto> obterPontos();
private:
    ListaEnc<Ponto> pontos;
    string nome;
};
#endif  /* POLIGONO_HPP */

Poligono.cpp

#include "Poligono.hpp"

* Poligono::Poligono(ListaEnc<Ponto> pontos, string nome)
{
    this->pontos = pontos;
    this->nome = nome;
}
* Poligono::Poligono(const Poligono& orig) {
}
* Poligono::~Poligono() {
}
//Metodo
string Poligono::obterNome()
{
    return this->nome;
}
ListaEnc<Ponto> Poligono::obterPontos()
{
    return this->pontos;
}
void Poligono::adicionarPonto(Ponto p)
{
    this->pontos.adiciona(p);
}

我得到这些编译错误Poligono.cpp:

/home/mariana/NetBeansProjects/TrabalhoCG/Poligono.cpp:12:未定义引用' ListaEnc::~ListaEnc()'

ListaEnc的析构函数为空,但已实现。有人知道怎么解决这个问题吗?

Edit:增加ListaEnc的构造函数和析构函数的实现。错误出现在我为Poligono.cpp添加的代码位中,其中ListaEnc是参数之一。

Edit2:我在Poligono.cpp中出现错误的地方添加了星号(第一个构造函数,第二个构造函数和析构函数)

既然你发布了显示

的代码
#ifndef POLIGONO_HPP
#define POLIGONO_HPP

Poligono.cpp,但你没有相同的ListaEnc.hpp,我假设你缺少包括警卫在该标题?

根据Poligono.cpp中包含的其他代码,这可能导致模板ListaEnc定义两次。在c++标准下,如果你违反了一个定义规则,你可能只会得到一个链接错误,而没有其他诊断信息。

那么,也许要确保ListaEnc.hpp中有include守卫?

如果你发布更多的代码,我会更新这个答案:)

编辑:另一个建议,如果找到ListaEnc的医生定义有困难,你可以尝试将它的实现移动到类体内?这样就不太可能因为打字错误而导致它丢失。由于所有的代码都在标题中,这实际上不会改变任何其他内容。

相关内容

  • 没有找到相关文章

最新更新