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

标签 c++ string object constructor nlp-question-answering

我想创建一个具有一个字符串属性的类。但如果字符串的长度超过 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
}

关于C++ 在构造函数中删除对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65594231/

相关文章:

c++ - 无需管理员身份即可在本地调试 x64 程序

c++ - CMake关于类依赖的 undefined reference 错误

PHP 对象保存

c# - 是否可以在 C# 中更改对象类型

用于在字符串中搜索的 Java 正则表达式

java - 从多个类访问方法

c++ - 使用信号量的冒泡排序算法

c++ - 帮助将这个程序集翻译成 c

python - 如何使用 kd-trees 确定字符串相似性?

java - 为什么 Java 的 String#replace() 方法对字符和字符串的处理方式不同?