C++ 控制台立即关闭,可能会崩溃(cin、system("pause") 等无效)
C++ console closes immediately, possibly crashing (cin, system("pause"), etc. have no effect)
我得到了一个带有“BasicObject”class 和随机数生成器 class 的程序的基本 shell。当我运行程序时,控制台立即关闭,cin函数、system("pause")等都没有作用。我怀疑是崩溃,但无法找到可能的来源。有帮助吗?
BaseObject.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
对象未实例化....
崩溃了,因为这里
obj->get_id()
obj 尚未初始化。只是一个指向带有一些随机垃圾的内存的指针。
你需要这样的东西
BaseObject* obj = new BaseObject()
在您可以使用 obj 之前
我得到了一个带有“BasicObject”class 和随机数生成器 class 的程序的基本 shell。当我运行程序时,控制台立即关闭,cin函数、system("pause")等都没有作用。我怀疑是崩溃,但无法找到可能的来源。有帮助吗?
BaseObject.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
对象未实例化....
崩溃了,因为这里
obj->get_id()
obj 尚未初始化。只是一个指向带有一些随机垃圾的内存的指针。
你需要这样的东西
BaseObject* obj = new BaseObject()
在您可以使用 obj 之前