在堆上调用 类(空字符串错误)C++

Calling classes on the heap (null string error) C++

我有一个 class 的项目,我要列出一份包含 50 名学生的可爱名单,将他们放在堆上,然后打印、排序、重印。 我必须为此使用 OOP,这不是什么大问题,但我正在努力将我的基础数据 class 连接到它们的父级 class。 我在编译代码的地方得到了它,但是给了我一个空字符串的 logic_error 。不知道为什么。开始删除任何空的 classes,现在它又在对我大喊大叫。 我正在使用的代码有点庞大,所以我将放入一个工作数据 classes,然后 class 我试图使用其他数据和主文件,请耐心等待...

-数据 class,按预期工作

.h
class Academics
{
    private:
        string GPA;
        string credits;
    public:
        Academics();
        Academics(string GPA, string credits);
        string getAcademics();
};

.cpp begins
Academics::Academics()
{
    Academics::GPA = "";
    Academics::credits = "";
}
Academics::Academics(string GPA, string credits)
{
    Academics::GPA = GPA;
    Academics::credits = credits;
}
string Academics::getAcademics()
{
    stringstream ssAcad;
    ssAcad << GPA << endl << credits << endl;
    return ssAcad.str();
}

-来电者class,不工作

.h
class Student
{
    private:
        Name name;
        Address address;
        Academics academics;
        Date dob;
        Date doc;
    public:
        Student();
        Student(Name name, Address address, Date dob,
                Date doc, Academics academics);
        string getStudent();
};

.cpp begins
Student::Student()
{
    Student::name = Name("Oscar", "Grouch");
    Student::address = Address("123 Sesame Street","Trash Can","New York","NY","10128");
    Student::academics = Academics("4.00", "120");
    Student::doc = Date("05","21","1993");
    Student::dob = Date("06","01","1969");
}
Student::Student(Name name, Address address, Date dob, Date doc, Academics academics)
{
    Student::name = name;
    Student::address = address;
    Student::dob = dob;
    Student::doc = doc;
    Student::academics = academics;
}
string Student::getStudent()
{
    name.getName();
    address.getAddress();
    dob.getDate();
    doc.getDate();
    academics.getAcademics();
}

-主要

int main ()
{
Student student = Student();
cout << student.getStudent() << endl;
return(0);
}

非常感谢关于我需要查看的地方的任何帮助或见解

您的函数 Student::getString() 没有 return 语句但声明为 return 字符串。

尝试添加 return name.getName(); 或类似内容以开始调试。