|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
07.03.2010, 11:51 | #1 |
Регистрация: 09.05.2009
Сообщений: 8
|
Как запустить или скомпоновать?
Такая проблема. Купил самоучитель по С++. Дошёл до темы "Классы", до параграфа "Отделение реализации от интерфейса класса в файле". То есть там, где мы сохраняем наш интерфейс класса в файле с расширением .h(в этом файле протитипы функций), а реализацию в файле с расширением .cpp(тут подробное описание функций). А главная функция main находится в третьем файле(тоже .cpp).
Так вот я все переписал как в книге, даже скачивал с официального сайта исходники, и все равно компилятор выдает ошибки: [Linker error] undefined reference to `GradeBookX::GradeBookX(std::string )' [Linker error] undefined reference to `GradeBookX::GradeBookX(std::string )' [Linker error] undefined reference to `GradeBookX:: displayMessage()' [Linker error] undefined reference to `GradeBookX:: displayMessage()' ld returned 1 exit status Вот мои программы: //GradeBookX.h интерфейс #include <iostream> #include <string> using namespace std; class GradeBookX { public: GradeBookX(string name); void SetCourseName(string name); string GetCourseName(); void displayMessage(); private: string CourseName; }; //GradeBookX.cpp реализация #include <iostream> #include <string> using namespace std; #include <GradeBookX.h> GradeBookX::GradeBookX(string name) { SetCourseName(name); } void GradeBookX::SetCourseName(string name) { if (name.length()<10) CourseName=name; else { cout<<"Error!\n"; CourseName=name.substr(0,10); } } string GradeBookX::GetCourseName() { return CourseName; } void GradeBookX:: displayMessage() { cout<<"Welcome to the grade book for " <<GetCourseName()<<endl; } //GradeBookConstructor.cpp главный файл #include <iostream> #include <string> using namespace std; #include <GradeBookX.h> int main() { string NameOfCourse,Course; cout<<"Enter 1st course name: \n"; getline(cin,NameOfCourse); cout<<"Enter 2nd course name: \n"; getline(cin,Course); GradeBookX MyGradeBook(NameOfCourse),MyGB(Cour se); cout<<"1st grade book's course name: \n"; MyGradeBook.displayMessage(); cout<<"2nd grade book's course name: \n"; MyGB.displayMessage(); system("Pause"); return 0; } НЕ пойму в чем дело, в книге ещё написано что мол это все надо ещё скомпоновать, но как это сделать??? Подскажите плиз P.S. У меня компилятор DEV C++(gcc вроде) |
07.03.2010, 12:09 | #2 |
Старожил
Регистрация: 21.03.2009
Сообщений: 2,193
|
Попробуйте
Код:
Простые и красивые программы - коды программ + учебник C++
Создание игры - взгляд изнутри - сайт проекта Тема на форуме, посвященная ему же |
07.03.2010, 12:32 | #3 |
Регистрация: 09.05.2009
Сообщений: 8
|
Неа, не пашет
Та же ошибка Мб если менять, так менять все три проги а не одну?? |
07.03.2010, 12:37 | #4 |
Не
Участник клуба
Регистрация: 29.10.2009
Сообщений: 1,456
|
компилировать надо все cpp файлы вместе, devc++ по умолчанию это не сделает, там либо через проект надо, либо через встроенный G++ компилировать
Код:
|
07.03.2010, 12:46 | #5 |
Регистрация: 09.05.2009
Сообщений: 8
|
NiCola999, огромная просьба, расскажите как это делать? плиз поподробней, так как я только недавно начал изучать С++
|
07.03.2010, 12:52 | #6 |
Старожил
Регистрация: 21.03.2009
Сообщений: 2,193
|
В любом случае, стражи включения будут нелишними...
Простые и красивые программы - коды программ + учебник C++
Создание игры - взгляд изнутри - сайт проекта Тема на форуме, посвященная ему же |
07.03.2010, 13:03 | #7 |
Регистрация: 09.05.2009
Сообщений: 8
|
Хорошо, так как компилировать все вместе через проект или через встроенный g++?
|
07.03.2010, 13:45 | #8 |
Не
Участник клуба
Регистрация: 29.10.2009
Сообщений: 1,456
|
я это делаю через встроенный g++, если у тебя винда, зайди в св-ва компьютера, вкладка дополнительно, кнопка "переменные среды", там найди переменную Path, нажми изменить, допиши в конце там путь к папке bin папки где у тебя стоит devcpp , то есть например если девс++ лежит тут
c:/devcpp , то в Path надо дописать с:/devcpp/bin , сохранить, перезапустить консоль, и тогда просто пишешь Код:
|
07.03.2010, 14:53 | #9 |
Регистрация: 09.05.2009
Сообщений: 8
|
|
07.03.2010, 15:05 | #10 |
Не
Участник клуба
Регистрация: 29.10.2009
Сообщений: 1,456
|
нет....это для командной строки
Пуск->Выполнить cmd cd путь к файлам cpp g++ .... |
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Как запустить приложение делфи в фоновом режиме(как процесс)? | Diakon | Общие вопросы Delphi | 4 | 16.11.2009 13:06 |
Help!!! как это скомпоновать в один проект??? | Redeemer_09 | Общие вопросы C/C++ | 5 | 04.09.2009 22:29 |
Как скомпоновать? | Greynvi4 | Общие вопросы C/C++ | 39 | 03.08.2009 22:45 |
Скомпоновать выпадающий список | valerij | Microsoft Office Excel | 7 | 24.02.2009 01:54 |
Как запустить программу | Vadik(R) | Паскаль, Turbo Pascal, PascalABC.NET | 1 | 10.03.2008 16:04 |