我有一个略带哲学意味的问题。有一个类A
class A
{
}
并且类A1、A2、A3都是从A继承而来的。
class A1 : public A
{
}
class A2 : public A
{
}
class A3 : public A
{
}
有一个处理对象A-A3的静态方法,应该优先选择哪个变量?
A)
class Algorithms
{
//Object of derived class could be use instead of the object base class
public: void test (const A *a) {}
};
或者
B)
class Algorithms
{
public:
//Templatize parameter
template <typename TType>
void (const TType *a) {}
};
在我看来,在这种情况下,选项a)更可取(因此模板化是多余的...)
选项b)意味着输入可以是任何类型,而不与类A有任何继承关系。
当方法test()可以使用另一种类型B时,它将被使用。
class B
{
}
这些结论是否正确?
并且类型为A-A3。