重载,重写和重定义
重载
(同一个作用于下的同名函数)
1,同一个作用域(都在在同一个类中或者都在全局作用下等)
2,参数的个数,参数的顺序和参数的类型不同。(参数的名字不同是不可以的)
3,和函数的返回值没有关系
4,const也可以重载条件
class Animal
{
public:
void func()
{
cout << "调用成功void func()" << endl;
}
void func(int a)
{
cout << "调用成功void func(int a)" << endl;
}
void func(double a)
{
cout << "调用成功int func(double a)"<<endl;
}
};
int main()
{
Animal* animal = new Animal;
animal->func();
animal->func(1);
animal->func(2.1);
return 0;
}
重写
(要有virtual)
(又叫覆盖,就是覆盖从父类继承过来的函数)
1,需要有继承关系
2,子类重写父类中的虚函数(virtual函数)(一般是多态的时候)
3,要求:函数的返回值,函数名字,函数参数必须和基类中的虚函数一致。
重定义
(又叫隐藏,如果子类中写了父类的同名成员,那么继承过来的父类的相关内容就会被隐藏)
1,需要有继承关系
2,子类重新定义父类的同名成员(非virtual函数)
(注意:只要名字相同的东西全部隐藏掉,不论返回值和参数有多么的不同)

2278

被折叠的 条评论
为什么被折叠?



