我正在使用核心OOP模型。 我在哪里遇到一些问题。
使用“this”关键字。这是我想要实现的示例代码。
class equation {
// some properties
};
class equationSolver{
public:
static void method1(equation eq, double dt);
}
class simpleMotion : public equation{};
class DragProjectile : public simpleMotion{
void updateVariables(double time){
equationSolver::method1(this, time); // I am getting error cannot convert
// "DragProjectile" to "equation"
}
如果你能提供帮助我真的很高兴。在此先感谢
答案 0 :(得分:5)
您需要传递*this
,因为您的方法按值equation
传递。顺便说一句,您可能希望更改method1()
以引用equation
作为参考,例如equation& eq
或const equation&
,以避免副本并保留任何虚拟行为你可能有的方法(阅读“切片”)。