我有一个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/