【发布时间】:2016-11-18 05:32:21
【问题描述】:
我是 C++ 新手,正在学习 Dietel 的书。书上有一些类和接口的示例代码
成绩簿.h
#ifndef GradeBook_h
#define GradeBook_h
#endif /* GradeBook_h */
#include <string>
class GradeBook
{
public:
explicit GradeBook( std::string );
void setCourseName( std::string );
std::string getCourseName() const;
void displayMessage() const;
private:
std::string courseName;
};
成绩簿.cpp
#include <iostream>
#include "GradeBook.h"
using namespace std;
GradeBook::GradeBook( string name )
{
courseName = name;
}
void GradeBook::setCourseName( string name )
{
courseName = name;
}
string GradeBook::getCourseName() const
{
return courseName;
}
void GradeBook::displayMessage() const
{
std::cout << "Welcome to the grade book for " << getCourseName() << std::endl;
}
main.cpp
#include <iostream>
#include "GradeBook.h"
using namespace std;
int main()
{
GradeBook gradeBook1("CS 101 Introduction to C++ Programming");
GradeBook gradeBook2("CS 102 Data Structures in C++");
cout << "gradeBook1 : " << gradeBook1.getCourseName() << endl;
cout << "gradeBook2 : " << gradeBook2.getCourseName() << endl;
}
所以,我试图在我的 mac 终端上使用 g++ main.cpp -o example.out 编译它。但似乎这经常给我一个错误,说
架构 x86_64 的未定义符号: “GradeBook::GradeBook(std::__1::basic_string, std::__1::allocator >)”,引用自: _main 在 main-0602c7.o ld:未找到架构 x86_64 的符号 clang:错误:链接器命令失败,退出代码为 1(使用 -v 查看调用)
我已经尝试摆脱除构造函数和成员变量之外的大多数函数声明和函数实现,但它似乎仍然给我同样的错误。
我想我完全从书中复制了代码,但我不明白我做错了什么。任何帮助将不胜感激。
【问题讨论】: