关于声明函数的快速问题。可以说我有以下代码:
class a{
int var;
/* stuff*/
}
class b : a{
/* other stuff*/
}
class c : a{
/* more other stuff*/
}
class d{
myFunctionThatWantsTheIntNamedVar(SubClassOfClassA SomeClassUnknownAtCompileTime);
}
而 myFunctionThatWantsTheIntNamedVar() 就是想要在 a 的基类中声明的整数(称为 var)。类 d 中的函数可以传递类 b 或类 c 的实例,这在编译时是未知的(仅在运行时)。
有没有一种方法可以简洁地声明一个可以采用 b 类或 c 类并获得相同基变量的函数?
同时我所做的是在 d 类中声明两个方法,如下所示:
class d{
myFunctionThatWantsTheIntNamedVar(c aClassCInstance);
myFunctionThatWantsTheIntNamedVar(b aClassBInstance);
}
这很好,但是这两种方法中的代码是相同的......而且根据我对面向对象编程的理解,如果代码相同,你应该能够将它组合成一个更好的功能。
对此有什么想法吗?只是在这里寻找最佳实践或其他建议,因为我在一家小公司工作并且有时很难获得反馈。
编辑:对不起,我的代码有错误,将其更改为:
myfunctionThatWantsTheInNamedVar(a aClassAInstance);
至:
myfunctionThatWantsTheInNamedVar(c aClassCInstance);
我的错。