【1701H1】【穆晨】【171124】连续第四十五天总结
2017-11-24 19:27
155 查看
任务:虚函数与多态性
联编:程序自身彼此关联的过程,将模块或者函数合并在一起
静态联编:在程序开始运行之前的编译期间确定函数的调用地址,并生成代码
动态联编:在程序运行时进行联编(需依靠虚函数)
虚函数:
在类中被声明为virtual的非静态成员函数,用virtual说明函数的虚特性
虚函数具有遗传性,基类中的虚函数继承到派生类中仍然是虚函数
不能将构造函数定义为虚函数,但可以将析构函数定义为虚函数
类体中定义:
virtual 函数类型 函数名(形参列表)
{
函数体
}
或
virtual 函数类型 函数名(形参列表);//类体中说明
函数类型 类名::函数名(形参列表)
{
函数体
}//类体外定义
多态性:
发出同样的消息,被不同类型的对象接受时,可能导致不同的行为
函数重载,运算符重载,两种属于静态联编
在编译时绑定函数调用的入口地址,称为编译多态性或静态多态性
动态多态性属于动态联编,通过基类的指针或引用调用函数实现
调用的一般格式:
基类指针变量名-.虚函数名(实参列表)
或
基类对象引用名.虚函数名(实参列表)
基类指针指向派生类对象时,
如果指针所调用的函数是虚函数,则调用派生类中新增的函数;
指针所调用的函数是非虚函数,则调用从基类继承来的函数;
联编:程序自身彼此关联的过程,将模块或者函数合并在一起
静态联编:在程序开始运行之前的编译期间确定函数的调用地址,并生成代码
动态联编:在程序运行时进行联编(需依靠虚函数)
虚函数:
在类中被声明为virtual的非静态成员函数,用virtual说明函数的虚特性
虚函数具有遗传性,基类中的虚函数继承到派生类中仍然是虚函数
不能将构造函数定义为虚函数,但可以将析构函数定义为虚函数
类体中定义:
virtual 函数类型 函数名(形参列表)
{
函数体
}
或
virtual 函数类型 函数名(形参列表);//类体中说明
函数类型 类名::函数名(形参列表)
{
函数体
}//类体外定义
多态性:
发出同样的消息,被不同类型的对象接受时,可能导致不同的行为
函数重载,运算符重载,两种属于静态联编
在编译时绑定函数调用的入口地址,称为编译多态性或静态多态性
动态多态性属于动态联编,通过基类的指针或引用调用函数实现
调用的一般格式:
基类指针变量名-.虚函数名(实参列表)
或
基类对象引用名.虚函数名(实参列表)
基类指针指向派生类对象时,
如果指针所调用的函数是虚函数,则调用派生类中新增的函数;
指针所调用的函数是非虚函数,则调用从基类继承来的函数;
相关文章推荐
- 【1701H1】【穆晨】【171029】连续第十九天总结
- 【1701H1】【穆晨】【171129】连续第五十天总结
- 【1701H1】【穆晨】【171031】连续第二十一天总结
- 【1701H1】【穆晨】【171217】连续第六十八天总结
- 【1701H1】【穆晨】【171201】连续第五十二天总结
- 【1701H1】【穆晨】【171203】连续第五十四天总结
- 【1701H1】【穆晨】【171013】连续第三天总结
- 【1701H1】【穆晨】【171116】连续第三十七天总结
- 【1701H1】【穆晨】【171213】连续第六十四天总结
- 【1701H1】【穆晨】【171030】连续第二十天总结
- 【1701H1】【穆晨】【171015】连续第五天总结
- 【1701H1】【穆晨】【171113】连续第三十四天总结
- 【1701H1】【穆晨】【171205】连续第五十六天总结
- 【1701H1】【穆晨】【171127】连续第四十八天总结
- 【1701H1】【穆晨】【171111】连续第三十二天总结
- 【1701H1】【穆晨】【171112】连续第三十三天总结
- 【1701H1】【穆晨】【171125】连续第四十六天总结
- 【1701H1】【穆晨】【171126】连续第四十七天总结
- 【1701H1】【穆晨】【171028】连续第十八天总结
- 【1701H1】【穆晨】【171216】连续第六十七天总结