C++ 构造函数中的空返回
我希望Visual Studio会给我一个错误或至少一个警告,但当我在构造函数中有一个空的C++ 构造函数中的空返回,c++,constructor,C++,Constructor,我希望Visual Studio会给我一个错误或至少一个警告,但当我在构造函数中有一个空的返回时,Visual Studio不会给我任何警告: MyObject::MyObject() { if (/*some condition*/) { //SomeCode return; } // continue with other code } 在我有限的经验中,我还没有见过这种用法,所以我的问题是,在构造函数中返回是否可以 这更像
返回时,Visual Studio不会给我任何警告:
MyObject::MyObject()
{
if (/*some condition*/)
{
//SomeCode
return;
}
// continue with other code
}
在我有限的经验中,我还没有见过这种用法,所以我的问题是,在构造函数中返回是否可以
这更像是一个好奇的问题,因为我知道编写代码很容易,这样就不必在其中输入return,虽然我有一个例子,这将非常有用,但在使用它之前,我想看看它是否被禁止(可能是标准禁止的,或者通常不是一个好主意)。没关系。这意味着该对象已成功构建。如果您遵循初始化器列表中初始化成员变量的一般建议,则它不会对您造成影响。
它类似于下面的代码
MyObject::MyObject () {
if (/* something */) {
// SomeCode
} else {
// continue with other code
}
}
标准规定:
12.1施工人员
…
函数体中的返回语句
建造商不得指定退货
价值构造函数的地址
不得服用。
可以使用返回构造函数中的代码>。我的理解是,这是允许的,这样程序员就可以从构造函数中提前返回,而无需弄乱布尔标志