首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >虚函数的STK回调振荡器问题

虚函数的STK回调振荡器问题
EN

Stack Overflow用户
提问于 2012-09-17 09:23:26
回答 1查看 200关注 0票数 0

我正在使用正弦振荡器回调处理其中一个STK程序。在从我的ToneGen类创建一个继承自Generator类的对象时,我遇到了一些问题,因为Generator类中的一个虚函数会导致我的ToneGen类抽象。我尝试过指针,但它似乎导致将数据传递给适当的方法时出现问题。如果我使用指针,我的代码会在ToneGen.h文件中中断

代码语言:javascript
复制
void setRate( StkFloat rate ) { rate_ = rate; };

否则,如果没有指针,我会得到这个错误

代码语言:javascript
复制
src\crtToneGen.cpp(36): error C2259: 'stk::ToneGen' : cannot instantiate abstract class
          due to following members:
          'stk::StkFrames &stk::Generator::tick(stk::StkFrames &,unsigned int)' : is abstract
          C:\VS10 Projects\StkNewInst\crtToneGen\include\Generator.h(43) : see declaration of 'stk::Generator::tick'

下面是Generator类中的虚函数

代码语言:javascript
复制
virtual StkFrames& tick( StkFrames& frames, unsigned int channel = 0 )=0;

有没有办法避免这种情况,我已经在其他帖子上尝试了其他几种技术,但还没有任何运气。

我正在修改的代码可以在here中找到

我在VisualStudio 2010 windows 7 32位上执行此操作

EN

回答 1

Stack Overflow用户

发布于 2012-09-17 09:44:31

代码语言:javascript
复制
stk::StkFrames &stk::Generator::tick(stk::StkFrames &,unsigned int)

是抽象的,需要在派生类中实现。

代码语言:javascript
复制
class ToneGen: public stk::Generator
{
  stk::stkFrames& tick(stk::StkFrames& frames,unsigned int something)
  {
     return stk::stkFrames(); // Don't do this, return something useful.
  }
}

您必须在派生类中实现此函数,因为基类不为此方法提供任何功能。它在stk头中的声明是:

代码语言:javascript
复制
stk::StkFrames &stk::Generator::tick(stk::StkFrames &,unsigned int) = 0;
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12452125

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档