C/C++重载

版权声明:本文为博主原创文章,未经博主允许不得转载。 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修饰。多态?

重载:重载就是派生类中有与基类接近的函数。是指同一可访问区内被声明的几个具有不同参数列(参数的类型,个数,顺序不同)的同名函数,根据参数列表确定调用哪个函数,重载不关心函数返回类型

猜你喜欢

转载自blog.csdn.net/u014003644/article/details/84782782