C++如何调用父类的方法?

C#用“base”,Java用“super”,C++用什么?... C#用“base”, Java用“super”,C++用什么? 展开
 我来答
阿平呀
高粉答主

2019-08-24 · 繁杂信息太多,你要学会辨别
知道答主
回答量:24
采纳率:100%
帮助的人:3249
展开全部

C++通过子类调用父类函数fun();

子类和父类函数名一样的函数fun,如果参数不一样,不管加不加virtual,当子类调用fun()时,会先在子类中找,找不到会报错。

C++是C语言的继承,它既可以进行C语言的过程化程序设计,又可以进行以抽象数据类型为特点的基于对象的程序设计,还可以进行以继承和多态为特点的面向对象的程序设计。C++擅长面向对象程序设计的同时,还可以进行基于过程的程序设计,因而C++就适应的问题规模而论,大小由之。

C++不仅拥有计算机高效运行的实用性特征,同时还致力于提高大规模程序的编程质量与程序设计语言的问题描述能力。

扩展资料:

C++语言特点:

1、支持继承和重用

在C++现有类的基础上可以声明新类型,这就是继承和重用的思想。通过继承和重用可以更有效地组织程序结构,明确类间关系,并且充分利用已有的类来完成更复杂、深入的开发。新定义的类为子类,成为派生类。它可以从父类那里继承所有非私有的属性和方法,作为自己的成员。

2、支持多态性

采用多态性为每个类指定表现行为。多态性形成由父类和它们的子类组成的一个树型结构。在这个树中的每个子类可以接收一个或多个具有相同名字的消息。当一个消息被这个树中一个类的一个对象接收时,这个对象动态地决定给予子类对象的消息的某种用法。多态性的这一特性允许使用高级抽象。

继承性和多态性的组合,可以轻易地生成一系列虽然类似但独一无二的对象。由于继承性,这些对象共享许多相似的特征。由于多态性,一个对象可有独特的表现方式,而另一个对象有另一种表现方式。

参考资料来源:百度百科-C++

往事随风12584
2019-08-19 · TA获得超过1.2万个赞
知道答主
回答量:69
采纳率:0%
帮助的人:1.6万
展开全部

C++通过子类调用父类函数fun();

子类和父类函数名一样的函数fun,如果参数不一样,不管加不加virtual,当子类调用fun()时,会先在子类中找,找不到会报错。

扩展资料:

C++调用父类的构造函数原则如下:

1. 如果子类没有定义构造方法,则调用父类的无参数的构造方法。

2. 如果子类定义了构造方法,不论是无参数还是带参数,在创建子类的对象的时候,首先执行父类无参数的构造方法,然后执行自己的构造方法。

3. 在创建子类对象时候,如果子类的构造函数没有显示调用父类的构造函数,则会调用父类的默认无参构造函数。

4. 在创建子类对象时候,如果子类的构造函数没有显示调用父类的构造函数且父类自己提供了无参构造函数,则会调用父类自己的无参构造函数。

5. 在创建子类对象时候,如果子类的构造函数没有显示调用父类的构造函数且父类只定义了自己的有参构造函数,则会出错(如果父类只有有参数的构造方法,则子类必须显示调用此带参构造方法)。

6. 如果子类调用父类带参数的构造方法,需要用初始化列表的方式。

本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
luosiyong
2012-05-18 · TA获得超过3256个赞
知道大有可为答主
回答量:1090
采纳率:0%
帮助的人:1619万
展开全部
使用基类的命名空间去调用:
#include <iostream>
using namespace std;

class Base
{
public:
void f()
{
cout << "Base::f" << endl;
}
};

class Derived : public Base
{
public:
void f()
{
cout << "Derived::f" << endl;
Base::f();
}
};

int main()
{
Derived d;
d.f();
d.Base::f();
return 0;
}

/*
Derived::f
Base::f
Base::f
Press any key to continue
*/
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
chinlee1523
推荐于2017-10-03 · TA获得超过713个赞
知道小有建树答主
回答量:590
采纳率:0%
帮助的人:409万
展开全部
A是B的父类,fun()是B继承的A的,在B中调用A的fun()则是A::fun()
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
狂族魔帝
2015-02-10 · TA获得超过367个赞
知道小有建树答主
回答量:596
采纳率:0%
帮助的人:403万
展开全部
Visual Studio 2005中新增了__super关键字,它代表本类的基类,因此可以像下面这样使用:
struct B1 {
void mf(int) {}
};
struct B2 {
void mf(short) {}
void mf(char) {}
};
struct D : B1, B2 {
void mf(short) {
__super::mf(1); // Calls B1::mf(int)
__super::mf('s'); // Calls B2::mf(char)
}
};
它还可以配合using语句使用,比如using __super::type_define;
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(11)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式