具有相同名称的静态方法
Static Method with Same Names
本文关键字:静态方法 更新时间:2023-10-16
我一直在尝试制作一个方程求解器
这就是我的结构
Class A {
virtual void someMethod(double time){
// doing something here
}
};
Class B:public A{
virtual void someMethod(double time)
// doing something more here
}
};
Class C:public B{
virtual void someMethod(double time)
// doing something more more here
}
};
Class D:public C{
virtual void someMethod(double time)
// doing something more more more here
}
};
Class Solver {
void static solve(A obj, double time){
obj.someMethod();
}
};
当我为类C实例调用Solver::solve时,它调用为A类实例定义的方法,而不是为C类本身定义的函数。。我该如何应对?
问题在于您的参数-它是一个类型为A
的对象,是用C
-对象初始化的,而不是通过A
-引用"查看"的C对象。不按价值取值,而按参考取值:
void static solve(A& obj, double time)
// ^
在C++中,引用必须显式声明为"1",在实际类型后面加上"与"。否则,声明的实体是一个使用相应的初始值设定项初始化的对象,在本例中为参数。
您应该使用指针或引用,而不是对象本身,因为它属于A
类型。当然,someMethod
应该在公共区域,而不是在私人区域,
static void solve(A& obj, double time){
相关文章:
- 尝试了解在导入的静态方法上使用删除方法时的错误
- 如何通过命名空间调用非静态方法
- 如何在没有实例的情况下获取非静态方法的类型?
- 调用从模板派生的类的静态方法,而不指定模板
- 如何在 c++ 中异步调用静态方法?
- C++ 将静态方法转换为简单方法
- 从另一个标头中的标头调用静态方法
- C++中静态方法的局部变量范围
- 如何启用使用另一个类的静态方法的模板函数的自动推导,从而消除冗长的调用方代码
- 使用本机 JNI 静态方法实现C++ Java 运行时错误
- 当只有静态方法受到影响时,如何解决C++中的链接器错误?
- 静态变量在同一个翻译单元中被静态方法使用时是否保证被初始化?
- 为什么链接器报告全局函数的乘法定义符号,而不是类静态方法
- 从部分专用模板方法调用模板非静态方法
- 如何使用 c++ 在 cocos2dx 中定义非静态方法
- 使用 CMake 的静态方法链接错误
- 在子类上调用模板化静态方法时获取类的类型名
- 仅具有公共静态方法的帮助程序类
- 调用没有主体的未实现静态方法
- 如何从C 的朋友类访问私有静态方法