RHEL5中的字符串析构函数问题

时间:2011-08-25 14:30:28

标签: c++ destructor

我在C ++中有两个问题:

  1. 在派生类中将析构函数声明为虚拟是否正确?

  2. 有时C ++应用程序在RHEL5上的字符串析构函数中崩溃。编译时我需要注意什么才能使应用程序在RHEL5上不崩溃?是否有任何网站链接可以更好地理解这一点?

1 个答案:

答案 0 :(得分:1)

  1. 从实际的角度来看,它无关紧要,因为它是虚拟的取决于基类析构函数是否是虚拟的。尽管如此,将派生类的析构函数声明为虚拟可能是一个合理的选择,既可以作为其他程序员的提示,又可以允许将来可能的重构,这个类可能成为层次结构的顶层。

  2. 没有代码示例,很难说。您可能尝试的一件事是确保您没有任何全局字符串,以防您在不同源文件中定义的全局变量中遇到破坏问题的顺序。

  3. 更新:我刚刚想到你的两个问题可能是相关的。您不是std::string的子类,是吗?如果你这样做,这是一个坏主意,它可能是你问题的原因。