【发布时间】:2021-04-12 02:36:26
【问题描述】:
我想创建一个有一个字符串属性的类。但是如果字符串的长度超过 50 个字符,我不想创建对象。我该怎么办?
{
if (paSlovo.length() <= DLZKA_SLOVA)
aSlovo = paSlovo;
else
delete this;
} ```
【问题讨论】:
-
中止构造函数的唯一方法是从中抛出异常。
-
这真的是一个类的属性,还是您的使用场景的属性,在这种情况下,您应该在尝试创建对象之前进行检查。至于构造函数,你总是可以抛出异常。
-
delete this在构造函数中将导致对象的任何使用(谁的构造已结束)具有未定义的行为。改为抛出异常 - 调用者的最终效果是对象从未存在过。
标签: c++ string object constructor question-answering