类不能与main中包含的.hpp文件一起使用,但是在主

时间:2017-09-11 21:43:51

标签: c++ class

我遇到了类的问题,我的IDE告诉我,如果我在main中包含我的.hpp文件,我对构造函数有一个未定义的引用,但是如果我在main中包含我的.cpp文件则不行。我的问题是,在课堂上和各个站点中,它应该是主要包含的.h或.hpp文件。这是我的文件:

Student.hpp

#ifndef STUDENT_HPP
#define STUDENT_HPP

class Student
{
private:
    std::string lastName;
    double gpa;

public:
    Student();
    Student(std::string LastName, double Gpa);

    void setLastName(std::string LastName);
    std::string getLastName();

    void setGpa(double Gpa);
    double getGpa();
};

#endif //STUDENT_HPP

Student.cpp

#include <iostream>
#include "Student.hpp"
using namespace std;


Student::Student()
{
    lastName = "unknown";
    gpa = 0.0;
}
Student::Student(string LastName, double Gpa)
{
    lastName = LastName;
    gpa = Gpa;
}

void Student::setLastName(string LastName)
{
    lastName = LastName;
}

string Student::getLastName()
{
    return lastName;
}

void Student::setGpa(double Gpa)
{
     gpa = Gpa;
}

double Student::getGpa()
{
    return gpa;
}

的main.cpp

#include <iostream>
#include "Student.hpp"

using namespace std;


int main()
{
    Student liz = Student();
    cout << liz.getLastName() << endl;



    return 0;
}

感谢您的帮助。

编辑:这对我来说似乎并不重复,我甚至没有能力在这一点上真正理解链接页面。如果它以某种方式说同样的话,那对我来说是另一种语言,我仍然需要帮助。

1 个答案:

答案 0 :(得分:3)

您应该一起编译Student.cpp和main.cpp。 例如在linux中

g++ main.cpp Student.cpp -o a.out

您将只获得一个名为“a.out”的输出,将所有这些输出链接在一起。然后运行a.out。

对于Windows codeblocks:

code::blocks - how to compile multiple file projects

https://www.youtube.com/watch?v=oXaC8t-gPVY