C++ 中控制台代码运行时的分段错误
Segmentation fault during runtime of console code in C++
我正在尝试制作一个简单的控制台学生详细信息显示系统,其中有 2 个班级,班级学生(基类)具有名称和注册号的成员变量,班级学生运动员(派生类)与体育类型字符串。 代码编译成功,但在运行时仅询问学生详细信息,但不会像调用 identify() 函数时预期的那样显示详细信息。 在代码块上,错误可能不会显示,但在联机编译(例如 https://www.onlinegdb.com/online_c++_compiler)上,它显示代码中存在分段错误。 请在必要时提供帮助。
我的代码完全(整体)如下:
#include <iostream>
using namespace std;
/**Base class**/
class student
{
protected:
string studName, studRegNum;
public:
student(string stdName, string regNo);
/**To define friendly class that is
Common to both classes**/
friend void identify();
};
/**constructor for class student**/
student::student(string stdName, string regNo)
{
studName = stdName;
studRegNum = regNo;
}
/**Derived class**/
class studentAthlete : public student
{
private:
string member_sport;
public:
/**To create constructor for class studentAthlete within class**/
studentAthlete(string student_sport):student(studName, studRegNum)
{
member_sport = student_sport;
}
/**To define friendly class that is
Common to both classes**/
friend void identify();
};
/**To display student information**/
void identify()
{
studentAthlete sa(sa.member_sport);
cout<<"Student Name: "<<sa.studName<<endl;
cout<<"Student Registration Number: "<<sa.studRegNum<<endl;
cout<<"Student Sport: "<<sa.member_sport<<endl;
}
int main()
{
string StudentName, StudentRegistrationNo, StudentSport;
/**To get & set student name from user**/
cout<<"Enter student name: "<<endl;
cin>>StudentName;
/**To get & set Student Registration No from user**/
cout<<"Enter Student Registration No: "<<endl;
cin>>StudentRegistrationNo;
/**To get & set Student Sport from user**/
cout<<"Enter Student Sport: "<<endl;
cin>>StudentSport;
/**To pass student values to their respective constructors**/
student st(StudentName,StudentRegistrationNo);
studentAthlete sa(StudentSport);
/**To display student information**/
identify();
return 0;
}
您将未初始化的成员传递给Student
构造函数。
这将导致未定义的行为。
您需要将名称和数字参数添加到运动员的构造函数中,并将其传递给Student
。
相关文章:
- 在某些循环内使用vector.push_back时出现分段错误
- 为什么在运行时没有向我们提供有关分段错误的更多信息?
- 如何解决gcc编译器优化导致的centos双编译器设置中的分段错误
- 当我的阵列太大时出现分段错误
- 分段错误当我试图运行程序时出错
- 在c++中初始化矩阵时出现分段错误(核心转储)
- 尝试使用集合函数时出现分段错误
- 我无法缩小此分段错误的原因
- g++的分段错误(在NaN上使用to_string两次时)
- 我是如何在这段代码中出现分段错误的
- 创建结构的数组时遇到分段错误
- 在c++中键入向量中的所有值后,得到分段错误(核心转储)
- 在 c++ 中实现 Trie 时出现分段错误
- 为什么 fstream 在打开带有格式的文件时会导致分段错误?
- 为什么我遇到分段错误?
- 动态类的分段错误(家庭作业问题)
- 分段错误 - 读取初始化指针的数组
- 如何摆脱C ++中的分段错误错误?
- 使用 CTYPE 时出现分段错误
- 为什么代码给出分段错误?