0 / 0 / 0
Регистрация: 28.02.2014
Сообщений: 32

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

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

Author24 — интернет-сервис помощи студентам
Всем привет. НАчал читать учебник Дейтеля (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:fi g03_13.cpp: (.text+0x87): undefined reference to `GradeBook::GradeBook(std::string)'
D:\Programming\Как программировать на С++ 5 издание с примерами\ch03\Fig03_11_13\fig03_13.o:fi g03_13.cpp: (.text+0xe8): undefined reference to `GradeBook::GradeBook(std::string)'
D:\Programming\Как программировать на С++ 5 издание с примерами\ch03\Fig03_11_13\fig03_13.o:fi g03_13.cpp: (.text+0x11d): undefined reference to `GradeBook::getCourseName()'
D:\Programming\Как программировать на С++ 5 издание с примерами\ch03\Fig03_11_13\fig03_13.o:fi g03_13.cpp: (.text+0x137): undefined reference to `GradeBook::getCourseName()'
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
10.03.2014, 12:20
Ответы с готовыми решениями:

Найти слова, повторяющиеся более одного раза, не могу найти ошибку
#include &lt;iostream&gt; using namespace std; void obr1(char **s, char **mas, int n, int m) { int i; int k; char *tm; for(i...

Массивы. Посчитать количество положительных, найти минимальное, удалить строку с минимальным (Не могу найти ошибку)
// Заданы матрицы X(8;4),Y(5;5),Z(6;9). // Для каждой из матриц определить строку, в которой находится наименьшее // количество...

Не могу найти ошибку
Всем добрый день! Уже второй день бьюсь над одной ошибкой и никак не могу найти ее. Вот отрезок кода. Сразу поясняю: нужно построить...

8
Модератор
Эксперт С++
 Аватар для zss
13759 / 10954 / 6487
Регистрация: 18.12.2011
Сообщений: 29,211
10.03.2014, 12:39
А Вы действительно собрали все 3 файла в один проект?
1
0 / 0 / 0
Регистрация: 28.02.2014
Сообщений: 32
10.03.2014, 12:50  [ТС]
zss
Дело в том, что я делаю все "по тексту", то есть сказано запустить-запускаю, даже ничего не изменял. В тексте сказано, что должно работать ни о чем больше речи не идет. Вот я и задаюсь вопросом-может чего-то я упустил. В проект не собирал ничего, ибо все файлы лежат в одном месте и(по умолчанию), якобы должно все работать.
0
New to C++
 Аватар для Progers
83 / 44 / 10
Регистрация: 14.01.2013
Сообщений: 258
10.03.2014, 12:57
Nihilo, Вы в какой IDE это делайте? У меня всё компилируется нормально.
QT SDK, компилятор MinGW.
1
2824 / 1859 / 203
Регистрация: 05.06.2011
Сообщений: 5,396
10.03.2014, 13:00
Явно нет. Nihilo, из каждого .cpp-файла получается .o; в одном лежит программа, в другом функции-члены класса. Судя по сообщениям об ошибках, вместе ты их не собрал.

Добавлено через 46 секунд
Цитата Сообщение от Nihilo Посмотреть сообщение
сказано запустить-запускаю
Что именно запускаешь? Воспроизведи сюда.
1
0 / 0 / 0
Регистрация: 28.02.2014
Сообщений: 32
10.03.2014, 13:15  [ТС]
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 заголовок.
0
19428 / 10044 / 2447
Регистрация: 30.01.2014
Сообщений: 17,712
10.03.2014, 13:32
Лучший ответ Сообщение было отмечено Nihilo как решение

Решение

Nihilo, надо создать проект (консольный подойдет), если еще не создал, и добавить туда все три файла.
1
New to C++
 Аватар для Progers
83 / 44 / 10
Регистрация: 14.01.2013
Сообщений: 258
10.03.2014, 15:49
Code::Blocks У меня там тоже, в некоторых проектах не подключались заголовки нормально. Советую вам использовать другую среду.
0
2824 / 1859 / 203
Регистрация: 05.06.2011
Сообщений: 5,396
10.03.2014, 17:05
Ну, в данном-то случае дело, похоже. не в заголовках. Ошибки линковки, не подключен модуль с реализацией класса.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
10.03.2014, 17:05
Помогаю со студенческими работами здесь

Не могу найти ошибку...
минимум среди сумм модулей элементов диагоналей, параллельных побочной диагонали матрицы. Я ввожу матрицу 1 2 3 4 5 6 7 8 9, т.е. минимум...

Не могу найти ошибку.
Добрый день всем! Опять у меня проблемы с моими &quot;любимыми&quot; шаблонами. Есть две шаблонные функции печатающие содержимое списка. Первая для...

Не могу найти ошибку!
Только-только начал работать с функциями и не могу понять, почему в моей игре(кидаешь с компьютером кубик) и у пользователя и у программы...

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

Не могу найти ошибку
#include &quot;stdafx.h&quot; #include &lt;iostream&gt; #include &lt;math.h&gt; #include &lt;iomanip&gt; using namespace std; int _tmain() { ...


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

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Опции темы

Новые блоги и статьи
Мульти-тенантные БД с PostgreSQL Row Security
Codd 23.04.2025
Современные облачные сервисы и бизнес-приложения всё чаще обслуживают множество клиентов в рамках единой программной инфраструктуры. Эта архитектурная модель, известная как мульти-тенантность, стала. . .
Реализация конвейеров машинного обучения с Python и Scikit-learn
AI_Generated 23.04.2025
Мир данных вокруг нас растёт с каждым днём, и умение эффективно обрабатывать информацию стало необходимым навыком. Специалисты по машинному обучению ежедневно сталкиваются с задачами предобработки. . .
Контроллеры Kubernetes Ingress: Сравнительный анализ
Mr. Docker 23.04.2025
В Kubernetes управление входящим трафиком представляет собой одну из ключевых задач при построении масштабируемых и отказоустойчивых приложений. Ingress — это API-объект, который служит вратами. . .
Оптимизация кода Python с Cython и Numba
py-thonny 23.04.2025
Python прочно обосновался в топе языков программирования благодаря своей простоте и гибкости. Разработчики любят его за читабельность кода и богатую экосистему библиотек. Но у этой медали есть и. . .
Микросервис на Python с FastAPI и Docker
ArchitectMsa 23.04.2025
В эпоху облачных вычислений и растущей сложности программных продуктов классическая монолитная архитектура всё чаще уступает место новым подходам. Микросервисная архитектура становится фаворитом. . .
Создаем веб-приложение на Vue.js и Laravel
Reangularity 23.04.2025
Выбор правильного технологического стека определяет успех веб-проекта. Laravel и Vue. js формируют отличную комбинацию для создания современных приложений. Laravel — это PHP-фреймворк с элегантным. . .
Максимальная производительность C#: Span<T> и Memory<T>
stackOverflow 22.04.2025
Мир высоконагруженных приложений безжалостен к неэффективному коду. Каждая миллисекунда на счету, каждый выделенный байт памяти может стать причиной падения производительности. Разработчики на C#. . .
JWT аутентификация в Java
Javaican 21.04.2025
JWT (JSON Web Token) представляет собой открытый стандарт (RFC 7519), который определяет компактный и самодостаточный способ передачи информации между сторонами в виде JSON-объекта. Эта информация. . .
Спринты Agile: Планирование, выполнение, ревью и ретроспектива
EggHead 21.04.2025
Спринты — сердцевина Agile-методологии, позволяющая командам создавать работающий продукт итерационно, с постоянной проверкой гипотез и адаптацией к изменениям. В основе концепции спринтов лежит. . .
Очередные открытия мега простых чисел, сделанные добровольцами с помощью домашних компьютеров
Programma_Boinc 21.04.2025
Очередные открытия мега простых чисел, сделанные добровольцами с помощью домашних компьютеров. 3 марта 2025 года, в результате обобщенного поиска простых чисел Ферма в PrimeGrid был найден. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru