c ++不让main返回[关闭]

Posted

技术标签:

【中文标题】c ++不让main返回[关闭]【英文标题】:c++ not let main return [closed] 【发布时间】:2013-12-13 11:04:43 【问题描述】:

我有以下代码:

int main()

    Client *c = new Client();
    ExitOnlyWhenClientException();
    return 0;

所以我不希望 main 仅在客户端抛出异常时返回。我知道我可以使用条件变量,它在客户端的析构函数中发出信号并在主块中等待。

但是还有其他方法吗?

我找到了这个链接How would you implement a basic event-loop?

我的问题与上面的链接相比有点不同,因为它应该知道客户端崩溃了。

编辑 1

我说崩溃了,我的意思是异常。

【问题讨论】:

Client 似乎是一个类。一个类不会崩溃。程序崩溃。因此,如果Client 类中的代码导致崩溃,整个程序就会崩溃。除非你在谈论例外,这是另一回事。 哪个平台?事件循环的概念可能出现在任何基础教程的第一章中。 @SirDarius:很明显他的意思是“当客户端导致崩溃时”。 为什么不在客户端有一个 run 方法,调用它然后你必须等到它完成,要么通过崩溃,要么干净 @SirDarius:是的,我的意思是客户端抛出异常。 【参考方案1】:

让我们用另一个类类型替换Client

int main()

    std::string *s = new std::string();
    ExitOnlyWhenStringException();
    return 0;

现在,如果您尝试访问越界元素,std::string::at() 可能会引发异常。事实上,由于*s 是空的,任何索引都会越界。但是,您没有调用 s->at(8) 或任何其他方法。因此,唯一可能的例外是来自newstd::bad_alloc。你不需要处理它(任何合理的实现都允许你动态地创建至少一个对象)。

【讨论】:

感谢您的回答。抱歉,我的问题不是很清楚。

以上是关于c ++不让main返回[关闭]的主要内容,如果未能解决你的问题,请参考以下文章

windows下怎么让mongodb关闭

excel遇到问题需要关闭,我们对此引起的不变表示抱歉!

gitlab版本升级关闭

休眠文件瘦身教程 Win10休眠文件怎么清

F460 怎么关闭远程控制

C-Lodop为啥开机自动启动,还关不掉?