C++中父类方法中可以调用子类的方法吗?
6个回答
推荐于2017-07-13
展开全部
不可以。
继承实际上是将父类中的成员拷贝一份,添加到子类中。这个过程对父类本身没有造成改变。也就是父类中是没有子类的方法的,也就无法调用了。
在一种特殊情况下,可以用父类的指针指向子类对象,然后用这个指针可以调用子类中的函数。这属于多态的范畴,实际上还是子类对象调用子类方法,与题主给出的情况不同。
继承实际上是将父类中的成员拷贝一份,添加到子类中。这个过程对父类本身没有造成改变。也就是父类中是没有子类的方法的,也就无法调用了。
在一种特殊情况下,可以用父类的指针指向子类对象,然后用这个指针可以调用子类中的函数。这属于多态的范畴,实际上还是子类对象调用子类方法,与题主给出的情况不同。
展开全部
多态。 如果说父类中有这个属性跟方法,子类有重写过,那么调用的是子类中的属性跟方法。 如果父类中没有这个属性跟方法,那么子类调用就会出错。 如果父类有这个属性跟方法,而子类没有,则调用的是父类的属性跟方法。
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
C++是可以的,举个例子
基类模板类:
template<typename T>
class Base
{
public:
void OnBase( )
{
static_cast<T*>(this) -> OnDerived( );
}
}
子类:
class Derived : public Base<Derived>
{
public:
void OnDerived( ) { //do something; }
}
基类模板类:
template<typename T>
class Base
{
public:
void OnBase( )
{
static_cast<T*>(this) -> OnDerived( );
}
}
子类:
class Derived : public Base<Derived>
{
public:
void OnDerived( ) { //do something; }
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2015-04-10
展开全部
可以调用属于基类的方法,除非使用类型强制转换
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2015-04-10 · 知道合伙人软件行家
关注
展开全部
父类指针可以调用虚函数
追问
您说的是父类指针指向子类对象,调用子类的方法吧
追答
必须是虚函数才行,否则只能调父类的函数
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询