我有一个C++类头文件,它定义了许多内联函数。我想将这些函数移到头文件之外,并移到单独的.cpp文件中,以加快编译速度。尽管我可以将正常函数移至单独的文件中,并且仅将函数减速度保留在 header 中,但是当我尝试将虚拟函数移至.cpp时,出现以下错误:



我怎么做?功能如下:

 virtual void SoundMixerSub::SetFilters(const MixerFilter& f)
 {
....
 }

最佳答案

如它所说,按照第7.1.2节的规定,您不能在类外的函数定义上使用virtual:



virtual保留在声明中,并将其从定义中删除。因此在头文件中:

class SoundMixerSub : ...
{
  // ...
  virtual void SetFilters(const MixerFilter&);
  // ...
};

然后在执行文件中:
void SoundMixerSub::SetFilters(const MixerFilter& f)
{
  // ...
}

关于c++ - 无法将虚拟功能移至 header 之外,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/15599887/

10-11 18:49