powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / Undefined reference to
6 сообщений из 6, страница 1 из 1
Undefined reference to
    #38254185
Kollapser
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Пишу в DEV C++, столкнулся с такой проблемой:
Имеется три файла
GradeBook.h
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
#include <string>
using std::string;

class GradeBook
{
	public:
		GradeBook(string);
		void setCourseName(string);
		string getCourseName();
		void displayMessage();
	private:
		string courseName;
};


GradeBook.cpp
Код: plaintext
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.
#include <iostream>
using std::cout;
using std::endl;

#include "GradeBook.h"

GradeBook::GradeBook(string name)
{
	setCourseName(name);
}
void GradeBook::setCourseName(string name)
{
	if (name.length() <= 25)
		courseName = name;
	
	if (name.length() > 25)
	{
		courseName = name.substr(0, 25);
		cout << "Name \"" << name << "\" exceeds maximum length.\nLimiting course name to first 25 characters.\n" << endl;
	}
}
string GradeBook::getCourseName()
{
	return courseName;
}
void GradeBook::displayMessage()
{
	cout << "Welcome to the grade book for" << getCourseName() << "!" << endl;
}


Main.cpp
Код: plaintext
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.
#include <iostream>
using std::cout;
using std::cin;
using std::endl;

#include <string>
using std::string;

#include "GradeBook.h"

int main()
{
	string nameOfCourse;
	GradeBook myGradeBook ("CS101DF & GHY567KM feat. GBCV5889");
	
	cout << "Initial course name is: " << myGradeBook.getCourseName() << endl;
	
	cout << "Please, enter course name: " << endl;
	getline (cin, nameOfCourse);
	
	myGradeBook.setCourseName(nameOfCourse);
	
	cout << "Course nmae is: " << myGradeBook.getCourseName() << endl;
	return 0;
}


При попытке скомпилировать Main.cpp выдает ошибку
ErrorsMain.cpp:(.text+0x100): undefined reference to `GradeBook::GradeBook(std::string)'
Main.cpp:(.text+0x139): undefined reference to `GradeBook::getCourseName()'
Main.cpp:(.text+0x1e9): undefined reference to `GradeBook::setCourseName(std::string)'
Main.cpp:(.text+0x212): undefined reference to `GradeBook::getCourseName()'

Объясните, пожалуйста. Заранее спасибо. И ещё: каким образом связаны GradeBook.cpp и GradeBook.h? Ведь в Main.cpp мы подключаем только заголовочный файл, содержащий лишь прототипы функций, а в самом заголовочном файле упоминаний GradeBook.cpp нет.
...
Рейтинг: 0 / 0
Undefined reference to
    #38254202
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Kollapserв Main.cpp мы подключаем только заголовочный файл, содержащий лишь
прототипы функций, а в самом заголовочном файле упоминаний GradeBook.cpp нет.

Именно поэтому они и undefined, что ты линкеру не дал GradeBook.obj.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Undefined reference to
    #38254205
Kollapser
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dimitry Sibiryakov, а можно чуть-чуть поподробней?
...
Рейтинг: 0 / 0
Undefined reference to
    #38254227
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Процесс создания исполняемого файла из исходных кодов С или С++ происходит в несколько
этапов. Сначала идёт препроцессор, потом компилятор у которого на выходе объектные файлы.
Потом линкер эти объектные файлы компонует вместе, связывая символы, такие как обращения к
переменным и вызовы процедур.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Undefined reference to
    #38254284
Kollapser
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dimitry Sibiryakov, а в моей программе что не так?
...
Рейтинг: 0 / 0
Undefined reference to
    #38254316
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Kollapserв моей программе что не так?
В твоей программе всё нормально. Проблема в процессе сборки, который явно не включает в
себя нужный модуль.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / C++ [игнор отключен] [закрыт для гостей] / Undefined reference to
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]