编译错误:找不到标头、类和类接口的任何问题

Errors in compilation: Can't find any problems with headers, classes, and class interfaces

本文关键字:接口 任何 问题 错误 找不到 编译      更新时间:2023-10-16

我不理解编译中的错误。我没有发现任何语法问题。

错误:

/dev/shm/ccEF5pIa.o: In function `main':
fig03_13.cc:(.text+0x45): undefined reference to `GradeBook::GradeBook(std::basic_string<char, std::char_traits<char>, std::allocator<char> >)'
fig03_13.cc:(.text+0x9d): undefined reference to `GradeBook::GradeBook(std::basic_string<char, std::char_traits<char>, std::allocator<char> >)'
fig03_13.cc:(.text+0xce): undefined reference to `GradeBook::getCourseName()'
fig03_13.cc:(.text+0xe1): undefined reference to `GradeBook::getCourseName()'
collect2: ld returned 1 exit status
GradeBook.cc:21:8: error: prototype for 'std::string GradeBook::displayMessage()' does not match any in class 'GradeBook'
GradeBook.h:15:8: error: candidate is: void GradeBook::displayMessage()

这是成绩册。h

#include <string> // class GradeBook uses C++ standard string class
using namespace std;
// 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
};

成绩册.cc

#include <iostream>
#include "GradeBook.h" // include definition of class GradeBook
using namespace std;
// 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::displayMessage()
{
    // call getCourseName to get the courseName
    cout << "welcome to the grade book forn" << getCourseName() << "!" << endl;
} // end function displayMessage

图03_13.cc

#include <iostream>
#include "GradeBook.h" // include definition of class GradeBook
using namespace std;
// 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;
} // end main

定义:字符串成绩册::displayMessage()。

声明:void displayMessage()

您不需要返回字符串。只需保留无效版本即可。