teonacio Postado Setembro 16, 2015 Denunciar Share Postado Setembro 16, 2015 (editado) Olá. Estou com dúvida em relação a um código que fiz para o estudo de classes, e gostaria de ajuda para resolver um erro. Segue abaixo:calculo.h #ifndef CALCULO_H #define CALCULO_H class Calculo{ private: int x; int y; int z; public: void setXYZ(int mx,int my,int mz); }; #endif // CALCULO_H calculo.cpp #include "calculo.h" void Calculo::setXYZ(int mx,int my,int mz){ x = mx; y = my; z = mz; } main.cpp #include <iostream> #include "calculo.h" using namespace std; int main(){ Calculo C1; C1.setXYZ(2,3,4); return 0; } Tanto o codeblocks quanto o devc++ retornam o seguinte erro: undefined reference to 'Calculo::setXYZ(int, int, int)' Estou tentando a horas resolver, mas n encontro a solucao. Editado Setembro 16, 2015 por teonacio Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 vangodp Postado Setembro 19, 2015 Denunciar Share Postado Setembro 19, 2015 você esta criando um projeto para isso? Si não for assim, de a file->new->project... e escolha console aplication(codeblocks), siga os passos, escolha C++ tatata e pronto, logo vaia criando os arquivos e que esses estejam incluídos no menu da direita, si não aparecer aperte maiuscula+F2. Certamente você só criou o main e colocou esses 2 arquivos juntos, apesar de estar correto, o codeblocks não sabe o que fazer para linkar(ligar) esses arquivos, por isso precisa de um projeto.Ao incluir o calculo.h dentro de "" você esta dizendo a main que o "calculo.h" esta na mesma pasta, porem tanto main.cpp, como calculo.h não sabem nada de calculo.cpp, porque dentro da classe só esta a declaração, porem a definição é como si não existisse. Ao estar dentro de um projeto, codeblocks busca automaticamente entre todos os .cpp a definição de todas as funções e por isso não precisamos fazer includes de arquivos .cpp. Nem tente fazer includes de arquivos cpp, é incorreto ok. Resumindo, é impossível trabalhar em projetos algo grandes sem fazer uso de um projeto que é o que nos ajuda a manter tudo organizado. Outra coisa que você pode fazer é a função setXYZ como inline. Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
teonacio
Olá. Estou com dúvida em relação a um código que fiz para o estudo de classes, e gostaria de ajuda para resolver um erro. Segue abaixo:
calculo.h
Tanto o codeblocks quanto o devc++ retornam o seguinte erro:
Estou tentando a horas resolver, mas n encontro a solucao.
Editado por teonacioLink para o comentário
Compartilhar em outros sites
1 resposta a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.