gpt4 book ai didi

c++ - 无法将虚函数移到 header 之外

转载 作者:塔克拉玛干 更新时间:2023-11-03 08:22:40 25 4
gpt4 key购买 nike

我有一个 C++ 类 header ,它定义了许多内联函数。我想将这些函数移出 header 并放入单独的 .cpp 文件中以加快编译速度。虽然我可以将普通函数移动到一个单独的文件中,并且只在标题中保留函数减速,但是当我尝试将虚拟函数移动到 .cpp 中时,我收到以下错误:

Error 2 - error C2723: 'virtual' storage-class specifier illegal on function definition

我该怎么做?函数如下:

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

最佳答案

正如它所说,根据 §7.1.2,您不能在类外的函数定义上使用 virtual:

The virtual specifier shall be used only in the initial declaration of a non-static class member function

保留声明中的 virtual 并将其从定义中移除。所以在头文件中:

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

然后在实现文件中:

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

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

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com