Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Nihilo
0 / 0 / 0
Регистрация: 28.02.2014
Сообщений: 30
#1

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

10.03.2014, 12:20. Просмотров 362. Ответов 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()'
http://www.cyberforum.ru/cpp-beginners/thread393087.html
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
10.03.2014, 12:20
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Не могу найти ошибку (C++):

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

Не могу найти ошибку
Здравствуйте,не могу понять в чем ошибка подскажите пожалуйста #include...

Не могу найти ошибку
Вот сама задача: Создайте свою версию библиотечной функции strcmp(s1, s2),...

Не могу найти ошибку.
народпомогите 1-й масив счтитае а второй нет, не могу найти ошибку #include...

Не могу найти ошибку
Условие задачи: Написать функцию решения квадратного уравнения. Помогите...

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

Добавлено через 46 секунд
Цитата Сообщение от Nihilo Посмотреть сообщение
сказано запустить-запускаю
Что именно запускаешь? Воспроизведи сюда.
1
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 заголовок.
0
DrOffset
7517 / 4513 / 1097
Регистрация: 30.01.2014
Сообщений: 7,362
10.03.2014, 13:32 #7
Лучший ответ Сообщение было отмечено Nihilo как решение

Решение

Nihilo, надо создать проект (консольный подойдет), если еще не создал, и добавить туда все три файла.
1
Progers
New to C++
83 / 44 / 10
Регистрация: 14.01.2013
Сообщений: 258
10.03.2014, 15:49 #8
Code::Blocks У меня там тоже, в некоторых проектах не подключались заголовки нормально. Советую вам использовать другую среду.
0
iifat
2336 / 1491 / 129
Регистрация: 05.06.2011
Сообщений: 4,151
10.03.2014, 17:05 #9
Ну, в данном-то случае дело, похоже. не в заголовках. Ошибки линковки, не подключен модуль с реализацией класса.
0
10.03.2014, 17:05
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
10.03.2014, 17:05
Привет! Вот еще темы с решениями:

Не могу найти ошибку
Не высчитывается значение U_n и E_kvd_ot_r_n,точнее выдёт nan. #include...

Не могу найти ошибку!
Пробую что-то вычудить..... не могу найти ошибку (просто интересно) #include...

Не могу найти ошибку
Добрый день! Третий день маюсь. Программа решает систему уравнений методом...

Не могу найти ошибку
Не могу найти ошибку 1. Минимальный по модулю элемент массива. 2. Сумму...


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

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

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