Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Nihilo
0 / 0 / 0
Регистрация: 28.02.2014
Сообщений: 30
#1

Не могу найти ошибку - C++

10.03.2014, 12:20. Просмотров 306. Ответов 8
Метки нет (Все метки)

Всем привет. НАчал читать учебник Дейтеля (5е издание), дошел до момента "отделение интерфейса от реализации", и в примерах, которые прилагаются к учебнику, явно присутствует ошибка, но найти не могу, ибо в самом учебнике код точно такой же как в приложенных примерах. Прошу помочь найти где ошибка:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
// Fig. 3.13: fig03_13.cpp
// GradeBook class demonstration after separating
// its interface from its implementation.
#include <iostream>
using std::cout;
using std::endl;
 
#include "GradeBook.h" // include definition of class GradeBook
 
// function main begins program execution
int main()
{
   // create two GradeBook objects
   GradeBook gradeBook1( "CS101 Introduction to C++ Programming" );
   GradeBook gradeBook2( "CS102 Data Structures in C++" );
 
   // display initial value of courseName for each GradeBook
   cout << "gradeBook1 created for course: " << gradeBook1.getCourseName()
      << "\ngradeBook2 created for course: " << gradeBook2.getCourseName()
      << endl;
   return 0; // indicate successful termination
} // end main


C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
// Fig. 3.11: GradeBook.h
// GradeBook class definition. This file presents GradeBook's public
// interface without revealing the implementations of GradeBook's member
// functions, which are defined in GradeBook.cpp.
#include <string> // class GradeBook uses C++ standard string class
using std::string;
 
// GradeBook class definition
class GradeBook
{
public:
   GradeBook( string ); // constructor that initializes courseName
   void setCourseName( string ); // function that sets the course name
   string getCourseName(); // function that gets the course name
   void displayMessage(); // function that displays a welcome message
private:
   string courseName; // course name for this GradeBook
}; // end class GradeBook


C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
// Fig. 3.12: GradeBook.cpp
// GradeBook member-function definitions. This file contains
// implementations of the member functions prototyped in GradeBook.h.
#include <iostream>
using std::cout; 
using std::endl;
 
#include "GradeBook.h" // include definition of class GradeBook
 
// constructor initializes courseName with string supplied as argument
GradeBook::GradeBook( string name )
{
   setCourseName( name ); // call set function to initialize courseName
} // end GradeBook constructor
 
// function to set the course name
void GradeBook::setCourseName( string name )
{
   courseName = name; // store the course name in the object
} // end function setCourseName
 
// function to get the course name
string GradeBook::getCourseName()
{
   return courseName; // return object's courseName
} // end function getCourseName
 
// display a welcome message to the GradeBook user
void GradeBook::displayMessage()
{
   // call getCourseName to get the courseName
   cout << "Welcome to the grade book for\n" << getCourseName() 
      << "!" << endl;
} // end function displayMessage
При попытке компиляции получаю:
D:\Programming\Как программировать на С++ 5 издание с примерами\ch03\Fig03_11_13\fig03_13.o:fig03_13.cpp: (.text+0x87): undefined reference to `GradeBook::GradeBook(std::string)'
D:\Programming\Как программировать на С++ 5 издание с примерами\ch03\Fig03_11_13\fig03_13.o:fig03_13.cpp: (.text+0xe8): undefined reference to `GradeBook::GradeBook(std::string)'
D:\Programming\Как программировать на С++ 5 издание с примерами\ch03\Fig03_11_13\fig03_13.o:fig03_13.cpp: (.text+0x11d): undefined reference to `GradeBook::getCourseName()'
D:\Programming\Как программировать на С++ 5 издание с примерами\ch03\Fig03_11_13\fig03_13.o:fig03_13.cpp: (.text+0x137): undefined reference to `GradeBook::getCourseName()'
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
10.03.2014, 12:20     Не могу найти ошибку
Посмотрите здесь:

ошибку не могу найти( - C++
не могу понять почему не считает((((( #include &quot;stdafx.h&quot; #include &lt;iostream&gt; #include &lt;conio.h&gt; #include &lt;math.h&gt; using...

Не могу найти ошибку - C++
Задание: Уплотнить заданную матрицу, удаляя из нее строки и столбцы, заполненные нулями. Найти номер первой из строк, содержащих хотя бы...

Не могу найти ошибку( - C++
Когда ввожу матрицу 4 на 4 все норм, когда больше размерность то не переставляет блоки!! Помогите разобраться почему так? ...

Не могу найти ошибку - C++
Добрый день, вот простенькая задача: &quot;В одном шаге от счастья&quot; Вова купил билет в трамвае 13-го маршрута и сразу посчитал суммы...

Не могу найти ошибку - C++
Добрый день, программа не компилируется, не могу найти ошибку. Заранее спасибо. #include &lt;stdio.h&gt; #include &lt;math.h&gt; int main() ...

Не могу найти ошибку. - C++
народпомогите 1-й масив счтитае а второй нет, не могу найти ошибку #include &quot;stdafx.h&quot; ...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
zss
Модератор
Эксперт С++
6321 / 5905 / 1913
Регистрация: 18.12.2011
Сообщений: 15,181
Завершенные тесты: 1
10.03.2014, 12:39     Не могу найти ошибку #2
А Вы действительно собрали все 3 файла в один проект?
Nihilo
0 / 0 / 0
Регистрация: 28.02.2014
Сообщений: 30
10.03.2014, 12:50  [ТС]     Не могу найти ошибку #3
zss
Дело в том, что я делаю все "по тексту", то есть сказано запустить-запускаю, даже ничего не изменял. В тексте сказано, что должно работать ни о чем больше речи не идет. Вот я и задаюсь вопросом-может чего-то я упустил. В проект не собирал ничего, ибо все файлы лежат в одном месте и(по умолчанию), якобы должно все работать.
Progers
New to C++
83 / 44 / 5
Регистрация: 14.01.2013
Сообщений: 258
10.03.2014, 12:57     Не могу найти ошибку #4
Nihilo, Вы в какой IDE это делайте? У меня всё компилируется нормально.
QT SDK, компилятор MinGW.
iifat
2225 / 1378 / 102
Регистрация: 05.06.2011
Сообщений: 3,799
10.03.2014, 13:00     Не могу найти ошибку #5
Явно нет. Nihilo, из каждого .cpp-файла получается .o; в одном лежит программа, в другом функции-члены класса. Судя по сообщениям об ошибках, вместе ты их не собрал.

Добавлено через 46 секунд
Цитата Сообщение от Nihilo Посмотреть сообщение
сказано запустить-запускаю
Что именно запускаешь? Воспроизведи сюда.
Nihilo
0 / 0 / 0
Регистрация: 28.02.2014
Сообщений: 30
10.03.2014, 13:15  [ТС]     Не могу найти ошибку #6
IDE Code::Blocks13.12, запускаю это:


C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <iostream>
using std::cout;
using std::endl;
 
#include "GradeBook.h" // include definition of class GradeBook
 
// function main begins program execution
int main()
{
   // create two GradeBook objects
   GradeBook gradeBook1( "CS101 Introduction to C++ Programming" );
   GradeBook gradeBook2( "CS102 Data Structures in C++" );
 
   // display initial value of courseName for each GradeBook
   cout << "gradeBook1 created for course: " << gradeBook1.getCourseName()
      << "\ngradeBook2 created for course: " << gradeBook2.getCourseName()
      << endl;
   return 0;
Добавлено через 9 минут
Все 3 файла лежат в одном месте fig03_13.cpp(исходный, его и запускаю), GradeBook(исходный).cpp и GradeBook заголовок.
DrOffset
7058 / 4199 / 949
Регистрация: 30.01.2014
Сообщений: 6,965
10.03.2014, 13:32     Не могу найти ошибку #7
Сообщение было отмечено автором темы, экспертом или модератором как ответ
Nihilo, надо создать проект (консольный подойдет), если еще не создал, и добавить туда все три файла.
Progers
New to C++
83 / 44 / 5
Регистрация: 14.01.2013
Сообщений: 258
10.03.2014, 15:49     Не могу найти ошибку #8
Code::Blocks У меня там тоже, в некоторых проектах не подключались заголовки нормально. Советую вам использовать другую среду.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
10.03.2014, 17:05     Не могу найти ошибку
Еще ссылки по теме:

Не могу найти ошибку - C++
Доброго времени суток. На днях написал программу, в логике программы вроде все правильно и подсчеты идут тоже корректные. Но до завершения...

Не могу найти ошибку - C++
Кусок программы. Нужно найти в файле необходимую услугу и записать её номер. У строки searching уже есть значение. Пример строки: Cвязь...

Не могу найти ошибку - C++
В общем суть программы состоит в том чтобы решить нелинейное уравнение x3+x2-4x-4=0 двумя методами хорд и итераций, есть исходник , вот...

Не могу найти ошибку! - C++
Пробую что-то вычудить..... не могу найти ошибку (просто интересно) #include &lt;iostream&gt; using namespace std; ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
iifat
2225 / 1378 / 102
Регистрация: 05.06.2011
Сообщений: 3,799
10.03.2014, 17:05     Не могу найти ошибку #9
Ну, в данном-то случае дело, похоже. не в заголовках. Ошибки линковки, не подключен модуль с реализацией класса.
Yandex
Объявления
10.03.2014, 17:05     Не могу найти ошибку
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru