C ++构建成功,但运行失败

时间:2016-10-17 01:42:12

标签: c++

我是新的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 */

我打开一个新项目,只添加了这个类。它无法运行。代码中有什么问题?

1 个答案:

答案 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()调用崩溃程序或抛出一些未被捕获的异常?在它甚至有机会运行之前,你已经有一个崩溃的程序。