版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u014003644/article/details/84782782
重载规则与调用匹配
重载规则:
1,函数名相同;
2,参数个数不同,参数的类型不同,参数顺序不同,均可构成重载。
3,返回值类型不同则不可以构成重载。
void func(int a); //ok
void func(char a); //ok
void func(char a,int b); //ok
void func(int a,char b); //ok
char func(int a); //与第一个函数有冲突
C++类的转换:
基类可以转换成派生类,派生类也可以转换成基类?
Base *b = new Derive();
b->f();
b就是指向一个派生类中的基类部分的指针。当派生类有基类的成员时,那么b就是指向派生类中的成员。这叫做覆盖?
基类到派生类的转换:
继承:派生类继承基类的private的所有成员函数,但是不能访问private私有成员函数。
派生类到基类的转换;
Base *hpd = new Derived();
Derived *Pd = dynamic_cast<Derived*>(hpd);???
就是基类调用派生类的成员函数,就叫做覆盖。
覆盖条件:其函数名,参数列表,返回值类型,所有都必须同基类中被重写的函数一致,被重写的函数必须有virtual修饰。多态?
重载:重载就是派生类中有与基类接近的函数。是指同一可访问区内被声明的几个具有不同参数列(参数的类型,个数,顺序不同)的同名函数,根据参数列表确定调用哪个函数,重载不关心函数返回类型