![]() |
1
3
好吧,在放弃了动态投射和多重继承之后,我想到了这个,多亏了 Anthony Williams 和 jogear.net
|
![]() |
2
2
看起来你正在尝试找到某种双重调度系统。查看访客模式或其他多个调度系统。 |
![]() |
3
2
你的bravo和alpha类实际上是闭包…太糟糕了,C++不直接支持它们。 可以使用成员指针执行此操作:
(语法可能不准确,但你知道我的意思) |
![]() |
4
0
我不一定能回答你的设计模式问题(尽管 Modern C++ Design 关于它有很多话要说),但我确实想处理您的开关vs继承注释。 这个简单的swtich语句的问题是可维护性。如果switch语句位于1个位置,那么创建类和继承类的输入量可能是相同的,但是switch语句仍然是一个定时炸弹,等待添加另一个状态而不添加实例。如果您断言默认值:,您将在运行时捕获它—最终,但这非常糟糕。如果您在表的大小上设置了一组函数指针和编译时断言,那么您会做得更好,但这是比switch语句更深的另一个层次。当代码中有第二个位置需要检查状态时,这些都会从窗口消失。 一旦你有了接口类的设置,让编译器处理内部打开状态的所有垃圾代码,这就简单多了。只要遵循接口,添加类就不需要担心任何其他代码。 |
![]() |
AstralHex · 矩阵乘法代码工作不正常 6 月前 |
![]() |
Fishie · 作为类成员的智能指针是否仍然自动释放?[关闭] 6 月前 |
![]() |
Die4Toast · 递归调用成员箭头运算符-> 6 月前 |
![]() |
Anka Hanım · 关于结构和动态数组地址的问题 6 月前 |