C++删除构造函数中的对象?

问题描述

我想创建一个具有一个字符串属性的类。但是如果字符串的长度超过 50 个字符,我不想创建对象。我该怎么办?

{
    if (paSlovo.length() <= DLZKA_SLOVA)
        aSlovo = paSlovo;
    else
        delete this;
    
} ```

解决方法

不是通过构造函数执行此操作,您可以使用一个函数执行此操作,该函数将在满足条件时为您提供对象,否则您将获得 nullptr。

确保在完成后正确删除对象或使用智能指针

//create object
bar* TryCreateMyObj(string const& paSlovo) const
{
    //only create object if string is less than 50
    if (paSlovo.length() <= DLZKA_SLOVA)
    {
        return new bar();
    }
    return nullptr
}

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...