在使用其他语言几年后,我最近开始使用 c++,并且在获取代码以使用构造函数编译时遇到了麻烦。我知道问题出在构造函数上,因为如果我将其注释掉,一切正常。我直接从一本 c++ 书中复制了一些代码,但仍然出现错误。我正在使用 g++ 在命令行中编译。编译器错误:
Undefined symbols for architecture x86_64:
"GradeBook::GradeBook(std::basic_string<char, std::char_traits<char>, std::allocator<char> >)", referenced from:
_main in ccoPO1iA.o
ld: symbol(s) not found for architecture x86_64
collect2: ld returned 1 exit status
任何帮助将不胜感激
GradeBookTest.cpp
#include <iostream>
#include "GradeBook.h"
using namespace std;
int main()
{
GradeBook book1("newClass");
}
成绩簿.h
#include <string>
using namespace std;
class GradeBook
{
public:
GradeBook(string);
void setCourseName(string);
string getCourseName();
void displayMessage();
private:
string courseName;
};
成绩册.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 << "this is the gradebook for\n" << getCourseName() << endl;
}
当我将代码复制到浏览器中时,缩进以某种方式搞砸了......