是否建议使用while循环,它永远不会在构造函数中结束?或者我应该使用线程来获得相同的结果? 构造函数永远不会终止时好吗?或者避免分段错误更安全吗?
希望你能理解我糟糕的英语..
答案 0 :(得分:10)
如果对象的构造函数没有完成,则该对象不存在。因此,在构造函数中放置while(1)循环将阻止使用该构造函数创建对象。你需要描述你认为这会解决什么问题。
答案 1 :(得分:5)
是否建议使用while循环,它永远不会在构造函数中结束?
没有
或者我应该使用线程来获得相同的结果?
没有
当构造函数永远不会终止时它是否合适?
没有
或者避免分段错误更安全吗?
没有
你想解决什么问题?
答案 2 :(得分:1)
我会说从构造函数中生成一个线程是完全可以的,并且在构造函数中有一个无限循环是一个非常糟糕的主意。
在代码中,以下是可以的:
void start_a_thread_with_a_loop()
{
while(1)
{
// consider a while(!stop_condition) or something
// do something in a loop
}
}
class x
{
public:
x()
{
start_a_thread_with_a_loop();
}
};
以下至少是一个坏主意:
class x
{
public:
x()
{
while(1)
{
}
}
};
好的一点是,可能你不能使用这样的物品,因为Neil指出:)
答案 3 :(得分:1)
您的代码不应生成分段错误,无论它是否使用多个线程或包含无限循环。
这些都与分段错误无关。如果发生这种情况,您需要解决该问题
答案 4 :(得分:0)
在嵌入式系统中,应避免使用大多数无限循环。它们应该定时或计算迭代次数。如果循环终止,则应执行错误检查。这避免了系统被“锁定”。
该规则的一个例外是后台循环。这是检查事件并使机器保持运行的主循环。如果没有这个循环,机器可能会终止或停止。