c++ - 错误 : 'class TermPaper' has no member named ''

标签 c++

我正在为类创建一个小的源文件/项目,但我不断收到错误“类 TermPaper”没有名为“setfirstName”/“setlastName”/“setsubject”的成员等。基本上每一行都带有 .set 或.get 是一个错误。

#include <iostream>
#include <string>
#include "TermPaper.cpp"
#include "TermPaper.h"
using namespace std;

int main(int argc, char** argv) {

    //Declare variables
    TermPaper paper1;
    string firstName;
    string lastName;
    string subject;
    char grade;

    cout << "Please enter first name. " << endl;

    cin >> firstName;

    cout << "Please enter last name." << endl;

    cin >> lastName;

    cout << "Please enter subject." << endl;

    cin >> subject;

    cout << "Please enter letter grade." << endl;

    cin >> grade;

    paper1.setfirstName();
    paper1.setlastName();
    paper1.setsubject();
    paper1.setgrade();

    cout << "First name:" << paper1.getfirstName() << endl;

    cout << "Last Name: " << paper1.getLastName() << endl;

    cout << "Subject: " << paper1.getSubject() << endl;

    cout << "Grade: " << paper1.getGrade() << endl;

    return 0;
}

这是我创建的 .cpp 文件,下面是我的导师给我的 .cpp 文件,并告诉我复制到上面有我的代码的项目文件夹中。这是我假设类 TermPaper 被定义的地方,我没有足够的信心来编辑它,因为我担心我会产生更多的错误。

TermPaper::TermPaper( )
{
  fName = "";
  lName = "";
  subject = "";
  letterGrade = 'F';
}
void TermPaper::setFName(string fN)
{
   fName = fN;
}
void TermPaper::setLName(string lN)
{
  lName = lN;
}
void TermPaper::setSubject(string sub)
{
  subject = sub;
}
void TermPaper::setLetterGrade(char grade)
{
  letterGrade = grade;
}
string  TermPaper::getFName( )
{
  return fName;
}
string TermPaper::getLName( )
{
  return lName;
}
string TermPaper::getSubject( )
{
  return subject;
}
char TermPaper::getLetterGrade( )
{
  return letterGrade;
}

我不太确定我的讲师给我的文件是否有错误(编译器没有检测到任何错误),或者我是否只是忘记了我自己的代码中的某些内容。在过去的一个小时里,我一直在翻阅我的教科书,所有的例子都没有告诉我任何内容。

任何帮助都会很棒,特别是因为这是我本学期的倒数第二个作业!

最佳答案

Michael Albers 指出的 cpp 文件的包含是一个明确的禁忌,会带来很多悲伤,但是......

但我在发布的代码段中的 TermPaper 方法中没有看到 setfirstName。尝试调用 TermPaper 提供的 setFName 方法,不要忘记您需要提供该方法所需的参数。没有这些参数,可怜的编译器就不知道你想做什么。它将寻找一个看起来像 void TermPaper::setFName()* 的函数,但没有找到。

paper1.setFName(firstName);
paper1.setLName(lastName);
paper1.setSubject(subject);
paper1.setLetterGrade(grade);

* 这不完全正确。它将寻找看起来像 TermPaper::setFName() 的东西,具有任何返回类型。重载始终基于参数,并且不会给出有关返回类型的信息。

关于c++ - 错误 : 'class TermPaper' has no member named '' ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36948719/

相关文章:

c++ - C++ 11 中 std::is_base_of 的逻辑

c++ - 如何在std::getline中自定义分隔符

c++ - 错误: Program "make" not found in PATH

c++ - 窗口的排列顺序

c++ - 设计一个多客户端-服务器应用程序,其中客户端不经常发送消息

c++ - OpenCV 多相机处理问题

c++ - 数组结构与结构数组

java - Java 谓词的 C/C++ 等价物

java - 是否有 C++ 等同于 COLOR.whatever 像 java?

c++ - 谷歌 Protocol Buffer : "mutable_foo()" or "set_allocated_foo()"?