在堆上调用 类(空字符串错误)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();
或类似内容以开始调试。
我有一个 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();
或类似内容以开始调试。