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



我对c++有两个问题:

  1. 在派生类中声明析构函数为虚函数是正确的吗?

  2. 有时c++应用程序会在RHEL5的字符串析构函数中崩溃。在编译应用程序不会在RHEL5上崩溃时,我需要注意什么?有没有什么网站链接可以让你更好的理解这个?

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

  2. 如果没有代码示例,很难说。您可以尝试的一件事是确保您没有任何全局字符串,以防您面临在不同源文件中定义的全局变量之间的销毁顺序问题。

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

最新更新