C++ 控制台立即关闭,可能会崩溃(cin、system("pause") 等无效)

守望者魔法

我有一个程序的裸壳,其中包含一个“BasicObject”类和一个随机数生成器类。当我运行程序时,控制台立即关闭,cin 函数、system("pause") 等不起作用。我怀疑发生了崩溃,但找不到可能的来源。有什么帮助吗?

基础对象.cpp:

#include "BaseObject.h"
#include "RandNumGenerator.h"

#include <iostream>
#include <string>

using namespace std;

BaseObject::BaseObject() {

    RandNumGenerator* numGen;
    set_id(numGen->generate_randNum_str(5));
    delete numGen;

}

BaseObject::~BaseObject() {}

...

//void - sets value of string "id"
void BaseObject::set_id(string newId) {

    id = newId;

}

这是主要功能:

#include <iostream>
#include <string>

#include "BaseObject.h"

using namespace std;

int main() {

    string userIn = "";
    BaseObject* obj;

    while (userIn != "q") {

        cout << "Id of \"obj\" is " << obj->get_id() << endl;
    
        cout << endl << "Type 'q' to quit." << endl;
        cin >> userIn;

    }

    return 0;

}
阿尔塞尼

它崩溃了,因为这里

obj->get_id() 

obj 尚未初始化。只是一个带有一些随机垃圾的内存指针。

你需要类似的东西

BaseObject* obj = new BaseObject()

在你可以使用 obj 之前

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章