Sou newbie em programação C++ e me deparei com um problema um tanto quanto esquisito. Quando tento executar o código abaixo o compilador (mingw eu acho) dá os seguintes erros:
'undefined reference to GradeBook::GradeBook( std::string )'
'undefined reference to GradeBook::GradeBook( std::string )' -> ele repete esse erro mesmo...
'undefined reference to GradeBook::getCourseName()'
'undefined reference to GradeBook::getCourseName()' -> também repete esse...
Esse código é quase uma cópia fiel de um código do Deitel, C++ como programar (dá pra perceber não é? n? :rolleyes: ).
Se eu colocar em programa.cpp a seguinte diretiva: #include "GradeBook.cpp", o código roda, mas isso fere a lógica de se criar uma interface...
Alguém pode me ajudar?
Abraço!
GradeBook.h:
#include <string>
using std::string;
class GradeBook {
public:
GradeBook(string);
void setCourseName(string);
string getCourseName();
void displayMessage();
private:
string courseName;
};
#include <iostream>
using std::cin;
using std::cout;
using std::endl;
#include <string>
using std::string;
#include "GradeBook.h"
int main() {
GradeBook materia1("IF672 - Algoritmos e Estruturas de Dados");
GradeBook materia2("IF677 - Infra-estrutura de Software");
cout << ".::Programa para testar a construção de interfaces::." << endl;
cout << "materia1 tem o valor de " << materia1.getCourseName() << endl;
cout << "materia2 tem o valor de " << materia2.getCourseName() << endl;
return 0;
}
Pergunta
Guest --Flávio --
Olá!
Sou newbie em programação C++ e me deparei com um problema um tanto quanto esquisito. Quando tento executar o código abaixo o compilador (mingw eu acho) dá os seguintes erros:
'undefined reference to GradeBook::GradeBook( std::string )'
'undefined reference to GradeBook::GradeBook( std::string )' -> ele repete esse erro mesmo...
'undefined reference to GradeBook::getCourseName()'
'undefined reference to GradeBook::getCourseName()' -> também repete esse...
Esse código é quase uma cópia fiel de um código do Deitel, C++ como programar (dá pra perceber não é? n? :rolleyes: ).
Se eu colocar em programa.cpp a seguinte diretiva: #include "GradeBook.cpp", o código roda, mas isso fere a lógica de se criar uma interface...
Alguém pode me ajudar?
Abraço!
GradeBook.h:
#include <string> using std::string; class GradeBook { public: GradeBook(string); void setCourseName(string); string getCourseName(); void displayMessage(); private: string courseName; };GradeBook.cpp:#include <string> using std::string; #include <iostream> using std::cin; using std::cout; using std::endl; #include "GradeBook.h" GradeBook::GradeBook(string name) { courseName = name; } void GradeBook::setCourseName(string nameOfCourse) { courseName = nameOfCourse; } string GradeBook::getCourseName() { return courseName; } void GradeBook::displayMessage() { cout << courseName; }programa.cpp:#include <iostream> using std::cin; using std::cout; using std::endl; #include <string> using std::string; #include "GradeBook.h" int main() { GradeBook materia1("IF672 - Algoritmos e Estruturas de Dados"); GradeBook materia2("IF677 - Infra-estrutura de Software"); cout << ".::Programa para testar a construção de interfaces::." << endl; cout << "materia1 tem o valor de " << materia1.getCourseName() << endl; cout << "materia2 tem o valor de " << materia2.getCourseName() << endl; return 0; }Link para o comentário
Compartilhar em outros sites
4 respostass 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.