#include<iostream>
using namespace std;
class base
{
public:
virtual void func()
{
cout<<"reach base::func()\n"<<endl;
}
virtual void func(int a)
{
cout<<"reach base::func("<<a<<")"<<endl;
}
};
class derive:public base
{
public:
virtual void func()
{
cout<<"reach derived::func()"<<endl;
}
};
int main()
{
derive d;
d.func(1);
return 0;
}
我个人理解既然公共继承了,那就能调用基类中的函数哈,为什么d.func(1);
编译通不过呢?
参考资料:《Effective C++》条款 33
参考资料:http://baike.baidu.com/view/161302.htm
本回答被网友采纳简单C++重载问题
在 C1 中为 int Set1(float i);系统判定虚函数有三个要求:1.与基类函数同名;2.有相同的参数个数及对应类型;3.有相有返回值或满足类型兼容规则的指针,引用的返回值;你写的函数只有满足第1条;所以系统认为是另一个函数而非对虚函数的重写;如果满足了前两条而不满足第三条,也是错误,系统不认为...
C++多态性。 基类的虚函数和重载函数的区别,是不是一个是在运行时发生...
虚函数则是, 基类的虚函数,很可能被重载,用基类指针和引用调用虚函数时,如果该指针或引用实际指向或代表的对象是派生类的对象,并且该派生类重载了该虚函数,则调用的就是派生类重载了的虚函数,而不是基类的虚函数。这就是面向对象中的多态在C++中的实现方式了。虚函数就是期待派生类重载的函数。
新手求教关于重载问题 求解释
重载是一种多态(如C++),有四种形式的多态:1.虚函数多态 2.模板多态 3.重载 4.转换 所谓的动态和静态区分是另一种基于绑定时间的多态分类,严格来说,重载是编译时多态,即静态多态,根据不同类型函数编译时会产生不同的名字如int_foo和char_foo等等,以此来区别调用。故重载仍符合多态定义——通...
关于C++虚拟函数的问题
virtual SubClass* afn()这个你要是把afn函数里面+个参数还可以实现一下函数的的重载 如果是你这样不能实现函数的重载,因为重载函数不以返回值来区分.把virtual SubClass* afn() 改为:virtual Base * afn()或者Base * afn()都可以 建议你去看一下虚函数的作用;下面是我跟你改的个简单一点的虚...
C++中重载加减乘除等运算符的纯虚函数中的返回类型怎么定义??运算符...
纯虚函数表示基类是一个抽象类(ABC),因此要在派生类中具体实现运算符重载,由于运算符在运算过程中会生成一个临时对象;如:class Vector { private:int x;int y;};假设要在类中实现一个+运算符的重载:Vector Vector::operator+(const Vector & b) const { return Vector(x+b.x, y+b.y)...
c++中有纯虚函数的类可不可以重载构造函数
当然可以。这种东东,如果不确定,你自己试一下就可以了。class A { public:A(int a){};A(){} virtual void t() = 0;};
C++中重载与重写函数区别及虚函数
重载,多个方法使用同一个方法名,必须明确的可以识别应该调用哪个方法。重写函数和虚函数很像,重新函数就是重新实现某个函数。虚函数,虚函数分为两种,纯虚函数和虚函数。纯虚函数在集成时必须进行实现【重写覆盖】,而虚函数可以不用重写【如果重写了,则覆盖掉原函数】。
c++中的虚函数一定要在类中声明吗
虚函数机制,即派生类重载基类的同名函数。所以这个函数肯定是类的成员函数,既然是类的成员函数,当然要在类中声明了。
c++ 类的多承继承中,第一层的父类中的虚函数
你的问题是C++中的多继承机制导致的 菱形继承问题(如下图所示) 的一个特例。1. 菱形问题是指R1中的成员在C1中会有两个拷贝。2. 当A1、B1使用virtual来继承R1时,菱形问题得到解决。3. 当A1、B1分别重载实现了R1中的相同的成员函数时,问题又来了:C1中有两个签名完全相同的函数,分别来自A1(...
C++父类中声明了一个虚函数以后 是不是在子类 以及子类的子类中 都要...
基类声明虚函数只是提供一个接口,也就是实现多态的关键,子类基本都要继承的,如果有一个子类不需要实现这个函数,说明你的继承关系有问题,最好改变一下继承体系