C++中父类和子类的成员函数同名同参数同返回只是父类里面是虚函数,子类没有虚函数限定 有问题吗

这样有什么问题吗?

没有问题,这就是虚函数的作用,子类中可以override(重写)父类中的虚函数,给出子类自己的实现方法,子类中其实省略了父类函数声明前的virtual,子类中加上virtual也是没有问题的,可有可无。
温馨提示:内容为网友见解,仅供参考
第1个回答  2012-09-24
没问题啊,父类里面是虚函数,当调用时子类只会调用自己的函数,不会调用父类的,这就是重载吧
第2个回答  2012-09-24
子类中的成员函数也是虚函数。
第3个回答  2012-09-24
子类重写父类的方法默认就是虚继承。

C++中父类和子类的成员函数同名同参数同返回只是父类里面是虚函数,子类...
没有问题,这就是虚函数的作用,子类中可以override(重写)父类中的虚函数,给出子类自己的实现方法,子类中其实省略了父类函数声明前的virtual,子类中加上virtual也是没有问题的,可有可无。

C++编程中 子类(派生类)能不能重写父类(基类)的函数(方法),除了虚函数...
如果函数名一样,参数不一样则是隐藏;总之,非虚函数,只要子类定义了相同名称的,父类函数都不能直接访问。这样的问题,自己写个Test自然明了,印象也会更深刻。

C++中用父类指针指向子类实例,用父类指针调用虚函数,问调用的是子类的...
如果是虚函数,是可以通过基类的指针调用子类的函数的。如果不是虚函数基类指针就只能调用基类函数

C++中是不是每个类(有虚函数)都对应一个virtual function table?_百...
你理解的是对的,子类和父类各有一个虚函数表,并且虚函数指针也是指向各自的。子类先是从父类复制了一个虚函数表,如果子类对父类的虚函数进行了覆盖,则在子类的虚函数表将会用子类的函数地址覆盖父类的,如果没有覆盖,则还是使用父类的函数地址,这样就实现了多态。

C++父类中声明了一个虚函数以后 是不是在子类 以及子类的子类中 都要...
基类声明虚函数只是提供一个接口,也就是实现多态的关键,子类基本都要继承的,如果有一个子类不需要实现这个函数,说明你的继承关系有问题,最好改变一下继承体系

父类指针指向子对象,父类和子类有同名函数,但不是虚函数,当这个指着指 ...
虽然是通过基类指针调用,但是由于不是虚函数,所以不会实现多态,所以还是静态调用,通过指针类型来确定,所以调用的是父类函数!

...中若有与父类里函数同名的函数,不是会覆盖父类中的
覆盖的条件是:基类必须是虚函数(virtual声明的),发生覆盖的两个函数9要在派生类和基类中,函数名称和参数列表完全相同。你上面的这种情况没有用virtual,基类的函数被隐藏,不是覆盖。你回去可以看看多态那一张,好好复习下

C++父类中有纯虚函数,在子类的子类中也需要实现吗?
(2)在main函数中,假设没有父类或者子类的实例对象,能够不实现父类的虚函数。(3)假设把虚函数写成纯虚函数,也就不须要实现了。也没不会发生上述讨论。子类中实现了,子子类就不用实现。子类没实现的话,子子类就可能需要实现。反正没有实现这个=0的函数的类是无法创建对象的。所以要实例化的类...

...然后主函数中father *p=new son;顺序是是:父类构造函数,子类...
因为你只定义了指向父类的指针,在主函数执行完后,只会销毁父类型指针p,p当然只会调用自己的析构函数了。如果你这样定义,son *p=new son;那么在销毁的时候,就会先调用son的析构函数,再调用father的析构函数。

请教大学C++中的一道题,求过程
要注意的是:如果子类的who()是虚函数,那么又是另外一种情况,便不能用这个图片解释了!此题涉及“继承时,父类与子类之间同名函数的覆盖”问题。derive1类和derive2类都继承于base类。由于函数名、返回值一样,所以这两个子类在继承父类时,base类的who()函数被其两个子类的who()函数覆盖了。函...

相似回答
大家正在搜