上级要求我将整个Ruby TK GUI程序更改为QML& C ++。不允许在QML中编写业务逻辑和动画。他们只想使用QML来显示Image
,并在C ++端控制这些图像,甚至是动画。
最大的问题是我得到的Ruby程序,只有大量复杂的代码,没有任何关于代码的单一注释和文档。
所以我试图用C ++方式编写Ruby。但红宝石是鸭子打字,有没有办法使C ++成为鸭子打字?与auto
成员变量一样。
或者我应该放弃并辞职?
答案 0 :(得分:1)
您不能关闭C ++的类型安全规则,但您可以尝试使用类型擦除技术模拟弱类型语言可用的一些习语,这可以使用void*
来实现,例如std::any
(这将在即将到来的C ++ 17标准中引入。
另一个替代方案是标记联合,例如std::variant
(也在C ++ 17中)或QVariant
,因为你使用Qt,正如迈克指出的那样。标记联合要求必须知道变量可能包含的潜在类型列表,但可能更容易使用访问者模式,这实际上是运行时类型选择的强类型版本。
或者我应该放弃并辞职?
重新设计也许更好。将程序转换为强类型算法可能是有利的。