【发布时间】:2017-09-16 06:02:30
【问题描述】:
有没有办法使用 = 类型赋值来代替这种语法:
void triggerAttack() { adsr.triggerAttack(); }
我希望做类似的事情:
void triggerAttack() = adsr.triggerAttack
std::function<void()> triggerAttack = adsr.triggerAttack
void(*triggerAttack)() = adsr.triggerAttack
但没有编译!
示例代码:
class LinearADSR
{
public:
void triggerAttack() { }
};
class JerobeamBlubb : public gen
{
public:
void triggerAttack() { adsr.triggerAttack(); }
protected:
LinearADSR adsr;
};
【问题讨论】:
-
你想达到什么目的? 1) 失败是因为语法无效 2) 和 3) 失败是因为你有成员函数,而不是普通函数(并且你使用实例来获取它们)
-
只是让继承某些函数变得简单,所以我不必将每个函数从一个类重写到另一个类。我没有使用子类,因为我只需要几个函数。但我可能会经常重复这种事情,这是无法避免的。每个班级都需要各种定制。
标签: c++ function class oop object