неопределенная ссылка на `GradeBook :: GradeBook (std :: string)

0

Я новичок для C++, сейчас я изучаю его с помощью книги C++ How To Program 8e. В разделе "Разделение интерфейса от реализации" приведен пример, подобный этому

GradeBook.h

#include <string>
using namespace std;

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

GradeBook.cpp

#include <iostream>
#include "GradeBook.h"
using namespace std;

GradeBook::GradeBook( string name )
{
    setCourseName( name );
}

void GradeBook::setCourseName( string name )
{
    courseName = name;
}

string GradeBook::getCourseName()
{
    return courseName;
}

void GradeBook::displayMessage()
{
    cout << "welcome to the grade book for\n" << getCourseName()
        << "!" << endl;
}

main.cpp

#include <iostream>
#include "GradeBook.h"
using namespace std;

int main()
{
    GradeBook gradeBook1( "CS101 Introduction to C++ Programming" );
    GradeBook gradeBook2( "CS102 Data Structures in C++" );

    cout << "gradeBook1 created for: " << gradeBook1.getCourseName()
        << "\ngradeBook2 created for: " << gradeBook2.getCourseName()
        << endl;
}

Когда я выполняю это с помощью CodeBlocks, я получаю сообщение об ошибке со следующей информацией

D:\C++\SIFI\main.o:main.cpp|| undefined reference to 'GradeBook::GradeBook(std::string)'|
D:\C++\SIFI\main.o:main.cpp|| undefined reference to 'GradeBook::GradeBook(std::string)'|
D:\C++\SIFI\main.o:main.cpp|| undefined reference to 'GradeBook::getCourseName()'|
D:\C++\SIFI\main.o:main.cpp|| undefined reference to 'GradeBook::getCourseName()'|
||=== Build failed: 4 error(s), 0 warning(s) (0 minute(s), 0 second(s)) ===|

Я абсолютный новичок и, пожалуйста, помогите.

  • 0
    Вам нужно связать оба файла cpp в сборке. Я не знаю CodeBlocks, но, вероятно, вы создаете «проект» или что-то; убедитесь, что вы добавили оба файла к этому.
Теги:

2 ответа

0
Лучший ответ

Некоторая ошибка кода :: Блоки... Иногда ваши файлы cpp не добавляются в ваш проект, вы должны добавить его самостоятельно в свой проект. (что-то вроде "файл> добавить файл> существующий файл"?)

0

Если вы используете кодовые блоки, вам нужно сначала создать проект. После создания проекта просто откройте столбец проекта из указанных выше вкладок и нажмите "Добавить файлы". Затем добавьте все основные файлы.h,.cpp. Теперь скомпилируйте его и сделайте!

Ещё вопросы

Сообщество Overcoder
Наверх
Меню