T
typak
Есть три файла:
Первый GradeBook.h
Второй GradeBook.cpp
Третий файл fig03_13.cpp (клиентский код)
Использую компилятор dev-C++ компилирую клиентский код файл fig03_13.cpp не компилируется выдает ошибку
[Linker error] undefined reference to `GradeBook::GradeBook(std::string)'
[Linker error] undefined reference to `GradeBook::GradeBook(std::string)'
[Linker error] undefined reference to `GradeBook::getCourseName()'
[Linker error] undefined reference to `GradeBook::getCourseName()'
ld returned 1 exit status
изменяю в этом файле строку #include "GradeBook.h" на #include "GradeBook.cpp"
все нормально компилируется хотя в листинге написано что должно стоять GradeBook.h....?
пытаюсь компилировать файл GradeBook.cpp исходный код класса опять же выдает ошибку:
[Linker error] undefined reference to `WinMain@16'
ld returned 1 exit status
В учебнике ясно написано, что программисты могут создавать классы оставляя тока интерфейс класса то есть заголовочный файл и компилируя в объектный код сами функции наверно в exe файл или я как то не пойму. Чота они у меня ни фига не компилируются ???
Подскажите где ошибка!!!!
Первый GradeBook.h
C++:
#include <string>
using std::string;
class GradeBook
{
public:
GradeBook(string);
void setCourseName(string);
string getCourseName();
void displayMessage();
private:
string courseName;
};
Второй GradeBook.cpp
C++:
#include <iostream>
using std::cout;
using std::endl;
#include "GradeBook.h"
GradeBook::GradeBook(string name)
{
setCourseName(name);
}
void GradeBook::setCourseName(string name)
{
courseName=name;
}
string GradeBook::getCourseName()
{
return courseName;
}
void GradeBook::displayMessage()
{
cout <<"Welcome to the grade book for\n"<<getCourseName()
<<"!"<<endl;
}
Третий файл fig03_13.cpp (клиентский код)
C++:
#include <iostream>
using std::cout;
using std::endl;
#include "GradeBook.h"
int main()
{
GradeBook gradeBook1("CS101 Introduction to C++ Programming");
GradeBook gradeBook2("CS102 Data Structures in C++");
cout <<"gradeBook1 created for: "<<gradeBook1.getCourseName()
<<"\ngradeBook2 created for: "<<gradeBook2.getCourseName()
<<endl;
return 0;
}
Использую компилятор dev-C++ компилирую клиентский код файл fig03_13.cpp не компилируется выдает ошибку
[Linker error] undefined reference to `GradeBook::GradeBook(std::string)'
[Linker error] undefined reference to `GradeBook::GradeBook(std::string)'
[Linker error] undefined reference to `GradeBook::getCourseName()'
[Linker error] undefined reference to `GradeBook::getCourseName()'
ld returned 1 exit status
изменяю в этом файле строку #include "GradeBook.h" на #include "GradeBook.cpp"
все нормально компилируется хотя в листинге написано что должно стоять GradeBook.h....?
пытаюсь компилировать файл GradeBook.cpp исходный код класса опять же выдает ошибку:
[Linker error] undefined reference to `WinMain@16'
ld returned 1 exit status
В учебнике ясно написано, что программисты могут создавать классы оставляя тока интерфейс класса то есть заголовочный файл и компилируя в объектный код сами функции наверно в exe файл или я как то не пойму. Чота они у меня ни фига не компилируются ???
Подскажите где ошибка!!!!