我是新的c ++,请原谅我提出这个问题。我创建了一个项目并在第一次运行它,它是成功的。但是,当我启动另一个项目并且我添加了4个类(您可以从选项卡中看到)并且 main.cpp 无法运行。我很困惑,因为两个项目中的代码完全相同。
运行成功: Success
构建成功但运行失败: Run Failed
解决这个问题有哪些解决方案?
我是否必须发布所有课程的代码? (共有8个文件)
student.h:
#ifndef CLSSTUDENT_H
#define CLSSTUDENT_H
#include <string>
#include <iostream>
using namespace std;
class clsStudent {
protected:
string name;
string student_no;
string program;
public:
clsStudent(string n, string sn,string prog );
virtual void displayStudentDetails();
};
student.cpp
#include "TutorialClass.h"
void TutorialClass::addStudent(clsStudent std)
{
_students.push_back(std);
}
int TutorialClass::getStudentCount()
{
return _students.size();
}
void TutorialClass::display()
{
}
#endif /* CLSSTUDENT_H */
我打开一个新项目,只添加了这个类。它无法运行。代码中有什么问题?
答案 0 :(得分:0)
似乎您的程序在使用其他文件编译时无法运行。我敢打赌,在这些文件中你有 main()
之前运行的错误代码。
在以下情况下可能会发生这种情况:
int f() {
throw; // bam! Uncaught exception;
}
int x = f(); // this runs before main()
或者这个:
class C {
C() {
cout << "This runs before main() too!" << endl;
}
};
C my_c; // calls constructor
在这两种情况下:代码都在main()
之前执行。您希望这样,因为您希望在运行main()
之前初始化全局变量。如果这个初始化代码设法通过段错误或exit()
调用崩溃程序或抛出一些未被捕获的异常?在它甚至有机会运行之前,你已经有一个崩溃的程序。