99问答网
所有问题
当前搜索:
基类派生类函数同名
基类
,
派生类
发生
同名
覆盖的
函数
,函数返回类型也一定要一样吗??谢谢...
答:
既然是
同名
覆盖了、那么返回类型一定也是相同的。否则就不是同名覆盖了
C++中
基类
和
派生类同名函数
调用的疑惑
答:
这是一个多态的例子,c++中约定使用
基类
的指针或引用时会产生动态绑定,前提是有虚
函数
成员,这2个条件多已经满足,所以产生了多态的行为.而后a.f()是虚函数输出为3,a.g()不是虚函数,只能调用自己的成员输出值为2。要想输出4...Ok 可以 在基类A中把a.g()也定义成虚函数。
对于
基类
与
派生类
中出现
同名函数
时,何时调用基类中的同名函数,何时调用...
答:
一般来说,在
派生类
中调用
同名函数
,默认情况下是调用派生类的,如果你想调用
基类
的,请用(BaseClass)::(Method)来调用
派生类
中的
函数
不可以与
基类
中的
同名
同参函数具有不同的类型?
答:
“
派生类
中的
函数
不可以与
基类
中的
同名
同参函数具有不同的类型?” 这句话只有在基类中的该函数是virtual时成立。class A { public:void f() {} };class B : public A { public:int f() { return 0; } };这样是可以的。但如果A中的f()是virtual的,那么这样就错了。两个f()的return...
c++类成员
函数
的重载,覆盖和隐藏有什么区别
答:
(3)参数不同;(4)virtual 关键字可有可无。2.覆盖是指
派生类函数
覆盖
基类函数
,特征是:(1)不同的范围(分别位于派生类与基类);(2)
函数名字相同
;(3)参数相同;(4)基类函数必须有virtual 关键字。3.“隐藏”是指派生类的函数屏蔽了与其同名的基类函数,规则如下:(1)如果派生类的...
C#在
派生类
中定义与
基类
中
同名
的方法那几种可能的情况是?
答:
1。override:在
基类
中定义virtual 方法,在
派生类
中使用override表示覆盖。2。new:在派生类中使用new修饰关键字(new是默认的,所以你不加new的话,默认你覆盖同名方法,但是在编译的时候会产生一个Warning);两者的区别在于将派生类转化为基类的时候,调用
同名函数
,结果真正调用的是不同的。
c++
函数
的覆盖中,
基类
的函数必须被定义为virtual虚的吗?
答:
如果
派生类
的函数与基类的
函数同名
,并且参数也相同,但是
基类函数
有virtual关键字。此时,基类的函数不会被“隐藏”。(在这里,你要理解为覆盖哦^_^)“隐藏”是指派生类的函数屏蔽了与其同名的基类函数,具体规则:如果派生类的函数与基类的函数同名,但是参数不同。此时,若基类无virtual关键字,基类的...
c++中的二义性是什么意思
答:
一、
同名
二义性
基类
B1和基类B2都存在一样的成员
函数
Say,
派生类
C同时继承了B1和B2,这时候如果C的对象使用Say的时候就无法确定该调用哪个基类的Say了。class B1{public: void Say(); //定义Say}class B2{public: void Say(); //定义Say}class C:public B1,public B2{ //...
如果我在
派生类
中定义了一个与
基类同名
且参数类型以及返回值都一样...
答:
是
函数
的覆盖。调用
基类
, 写 基类名::函数(..) 调的是基类的。
关于C++中的二义性
答:
即
派生类
中的函数遮挡住
基类
中的
同名函数
,这并不是所谓的二义性,其实两个函数都存在,只是编译器发现当前作用域内的函数名时,就停止了 进一步向外层作用域搜索。想调用基类的函数,可以前边加上类名,如此例中d.C::a()或d.A::a()在实际应用中,这种情况是应该避免的,一般覆盖(override)的...
1
2
3
4
5
6
7
8
9
10
涓嬩竴椤
灏鹃〉
其他人还搜
派生类和它的基类中出现同名函数
派生类调用基类函数
派生类和能否继承基类的函数
派生类重载基类函数
派生类继承基类的构造函数
当派生类中有和基类一样名字
派生类函数
派生类的析构函数
基类和派生类