1

在 C++ 中,我有一个头文件,它定义了一个带有空虚拟析构函数的抽象类(接口):

class I
{
  public:

    virtual ~I() {}
};
  • 问题1:空析构函数的目标代码是否会在每个包含Ih的.cpp文件的目标文件中生成?
  • 问题 2:如果问题 1 的答案是肯定的,这会是一个问题吗(不同目标文件中的方法相同)?
4

1 回答 1

5

不,它不会。类定义中定义的方法是自动的inline,所以不用担心。

请注意,inline在二进制文件中被标记并实际内联的方法是不同的。inline只是一个标记(充其量是编译器提示)。尤其是virtual功能。无论方法是否被标记,多态性都可以保证工作inline

于 2012-05-31T11:14:50.190 回答