
c++中如果派生类对基类继承过来的函数功能不需要扩充可不可不定义而直接调用?
派生类是不是相对与基类来说是一个功能更完善的而又独立的了?就是说它所有的功能还需再定义了还是它和基类是相通的了只需再定义扩充功能基类的功能它就会有了?...
派生类是不是相对与基类来说是一个功能更完善的而又独立的了? 就是说它所有的功能还需再定义了 还是它和基类是相通的了 只需再定义扩充功能 基类的功能它就会有了?
展开
5个回答
展开全部
哈,我拿effective C++上的话来说吧。
有一个基类person,和两个派生类student和teacher,person里面可以定义一些函数比方说基本的功能eat(),study(),student和teacher都可以继承这两个函数(因为通用),不需要重新定义,但是新的派生类可以派生出自己独特的行为,比方说student可以有submit()提交作业功能,teacher有check()检查作业功能,这就可以分开定义了。
所以派生类可以说是完善而且独立的,基类定义的功能子类不用重复定义,但是虚函数是要重新定义的,纯虚函数在派生类必须需要定义。
有一个基类person,和两个派生类student和teacher,person里面可以定义一些函数比方说基本的功能eat(),study(),student和teacher都可以继承这两个函数(因为通用),不需要重新定义,但是新的派生类可以派生出自己独特的行为,比方说student可以有submit()提交作业功能,teacher有check()检查作业功能,这就可以分开定义了。
所以派生类可以说是完善而且独立的,基类定义的功能子类不用重复定义,但是虚函数是要重新定义的,纯虚函数在派生类必须需要定义。
展开全部
c++中如果派生类对基类继承过来的函数功能不需要扩充的话,可以直接使用基类中的函数。因为派生类中继承了基类的属性和方法。
如果基类中的实现和派生类中的方法实现不同的话,可以用虚函数。派生类继承了基类虚函数的接口和默认实现,但是它可以对这个虚函数重新实现。
一般来说派生类的行为不可能和基类完全一样,成员和函数都会有扩充。
如果基类中的实现和派生类中的方法实现不同的话,可以用虚函数。派生类继承了基类虚函数的接口和默认实现,但是它可以对这个虚函数重新实现。
一般来说派生类的行为不可能和基类完全一样,成员和函数都会有扩充。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
基类的功能都有,不需要定义就可以调用用基类的函数,如果重新定义了,则默认调用的是新的函数,但是你还可以用::符号指定调用基类的函数。当然要注意基类的是private 、protected、public ,稍微还有点区别。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
如果基类的函数有定义,派生类可以不用定义直接调用,如果基类的函数没有定义(纯虚函数)则派生类在调用前必须定义该函数的函数体。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
关键看那个函数是不是 纯虚函数(也就是 基础类 只是声明没有定义)。如果不是,且功能已经足够了你可以直接调用.
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询