C++中父类方法中可以调用子类的方法吗?

2024-11-08 23:01:29
推荐回答(5个)
回答1:

不可以。
继承实际上是将父类中的成员拷贝一份,添加到子类中。这个过程对父类本身没有造成改变。也就是父类中是没有子类的方法的,也就无法调用了。
在一种特殊情况下,可以用父类的指针指向子类对象,然后用这个指针可以调用子类中的函数。这属于多态的范畴,实际上还是子类对象调用子类方法,与题主给出的情况不同。

回答2:

多态。 如果说父类中有这个属性跟方法,子类有重写过,那么调用的是子类中的属性跟方法。 如果父类中没有这个属性跟方法,那么子类调用就会出错。 如果父类有这个属性跟方法,而子类没有,则调用的是父类的属性跟方法。

回答3:

C++是可以的,举个例子
基类模板类:
template
class Base
{
public:
void OnBase( )

{
static_cast(this) -> OnDerived( );
}
}
子类:
class Derived : public Base
{
public:
void OnDerived( ) { //do something; }
}

回答4:

可以调用属于基类的方法,除非使用类型强制转换

回答5:

父类指针可以调用虚函数