我如何告诉课程创建独特的子类
How do I tell a class to create unique sub-classes
我已经定义了一个名为 Instrument
的类
我现在创建了两种乐器:
Instrument Organ
Instrument Piano
我还有另一个称为Screen
的类,该类处理更改值,例如音量并将这些值放在显示屏上。例如,它具有称为IncValue()
的函数,该函数可以执行它所说的。
我想创建可以重复所有乐器的子类,例如:
Screen Volume
这将声明int16_t volume
,IncValue()
会增加卷,DecValue()
降低它。
但是如何从Instrument Class
创建这些Screens
,以便我可以做
Organ.Volume.IncValue()
(或 ->也许,我在这种复杂性水平上完全迷失了)和
Piano.Volume.IncValue()
他们只能在相关工具上工作。
最终将声明100张乐器,所以我真的不想声明诸如Screen PianoVolume
和Screen OrganVolume
等独特类。
希望这不是一个问题。
我认为您在类和对象之间混杂在一起。只需让Instrument
类拥有一个Screen
类的对象即可。其余的然后自然跟随。
所以您可能有(稍微扩展您的想法):
class Screen
{
public:
void IncValue ();
private:
int volume;
};
class Instrument
{
public:
Screen screen;
...
};
class Piano : public Instrument
{
...
};
然后您可以(例如):
Piano MyPiano;
MyPiano.screen.IncValue ();
...
对于任何乐器或子类。
相关文章:
- 如何为定义的情况创建子类?
- 创建子类的多个实例,其中只有一个超类实例
- 创建一个函数,该函数使用模板创建类或子类的对象
- 在父类函数中创建子类 - 可能吗?
- 使用模板创建子类
- 创建子类复制构造函数时是否强制使用/创建默认的超级构造函数?[C++]
- 我如何告诉课程创建独特的子类
- 如何将字符串(ID)映射到新的子类对象C 的创建
- 创建 QQuickItem 子类的实例是否有问题,我不打算渲染或添加到 QML 树中的实例?
- C++:从两个包含子类 (typedef) 的列表创建一个列表
- C 如何用数组在类中创建子类
- 如何创建一个包含C 中的子类的类的链接列表
- 删除已创建的Qt元素和子类
- C++在子类中创建一个可用的方法
- 如何在OMNeT++中创建消息(.msg)的子类
- 我可以显示根据需要创建的对象(QLabel 的子类)吗?(我遇到的问题是删除它)
- 创建子类对象时, 是为超类创建的第二个对象
- 创建子类的向量
- 如何从嵌套的 lambda 表达式函子类创建
- 由子类创建的对象的c++重写函数