【发布时间】:2014-10-14 12:55:37
【问题描述】:
在这里找到:https://github.com/tpaviot/oce/blob/master/src/BRepAdaptor/BRepAdaptor_Curve.cxx
我想知道的是:
((GeomAdaptor_Curve*) (void*) &myCurve)->Load(C,First,Last);
myCurve 已定义为GeomAdaptor_Curve。所以看起来它将指向myCurve 的指针转换为void*,然后将that 转换为GeomAdaptor_Curve*,然后取消引用并调用Load。这样做有什么可能的原因,而不是简单地调用myCurve.Load?
【问题讨论】:
-
遗留代码很可能,之前的时间可能是另一种类型,需要转换为
GeomAdaptor_Curve,但双重转换真的很奇怪,如果涉及指针算术,就不会那么奇怪了。在->之前,这真的很奇怪。 -
现在似乎没有任何理由。同一类中的其他方法只需直接调用
myCurve.Load()。