【发布时间】:2015-02-14 17:56:05
【问题描述】:
我的实验室实现文件中有几个不兼容的声明,我不知道为什么。我还在学习 C++,但我看不出这个问题是什么。基本上,该程序应该做的就是当它的运行结束时吐出一条消息,说明欢迎使用成绩簿并与老师一起说明成绩簿的班级。但是,由于不兼容,我的实现文件中的 set 和 get 语句不允许我编译。我可以使用一些提示谢谢。
这是我所有三个文件的代码:
标题 -
#include <string>
class GradeBook
{
public:
explicit GradeBook(std::string);
void setCourseName(std::string);
std::string getCourseName() const;
void displayMessage()const;
void setInstructorName(std::string);
std::string getInstructorName() const;
private:
std::string courseName;
std::string instructorName;
};
实现文件-
#include <iostream>
#include "GradeBook.h"
using namespace std;
GradeBook::GradeBook(string name): courseName(name)
{
}
void GradeBook::setCourseName() const
{
courseName = name;
}
string GradeBook::getCourseName() const
{
return courseName;
}
void GradeBook::setInstructorName() const
{
instructorName = name;
}
string GradeBook::getInstructorName() const
{
return instructorName;
}
void GradeBook::displayMessage() const
{
cout << "Welcome to the grade book for\n" << getCourseName() << "with" << getInstructorName << "!" << endl;
}
主文件-
#include <iostream>
#include "GradeBook.h"
using namespace std;
int main()
{
GradeBook courseName("COP2224: Intro To C++ Programming");
GradeBook instructorName("Heidi Gentry Kolen");
}
【问题讨论】:
-
错误信息在哪里
-
如果您花时间将代码简化为最小示例,您自己就会发现错误。
-
有趣的是这是最小的,从学习的起点开始。是的,它可以简化,但我需要了解更多。
-
@AverageJoe:不,它不是最小的......这是在向 SO 发布新问题之前应该能够达到的最小版本:
class GradeBook { public: void setCourseName(std::string name) const { courseName = name; } private: std::string courseName; }all 在头文件中。事实上,这个小程序可能已经向您展示了您需要的内容。
标签: c++ declaration