C++ 构造函数中的空返回

C++ 构造函数中的空返回,c++,constructor,C++,Constructor,我希望Visual Studio会给我一个错误或至少一个警告,但当我在构造函数中有一个空的返回时,Visual Studio不会给我任何警告: MyObject::MyObject() { if (/*some condition*/) { //SomeCode return; } // continue with other code } 在我有限的经验中,我还没有见过这种用法,所以我的问题是,在构造函数中返回是否可以 这更像

我希望Visual Studio会给我一个错误或至少一个警告,但当我在构造函数中有一个空的
返回时,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施工人员

函数体中的返回语句 建造商不得指定退货 价值构造函数的地址 不得服用。

可以使用
返回。我的理解是,这是允许的,这样程序员就可以从构造函数中提前返回,而无需弄乱布尔标志