当前位置: 首页 > news >正文

大连网站建设联合企邦广告公司联系方式

大连网站建设联合企邦,广告公司联系方式,平面设计招聘唐山,六盘水做网站一、什么是虚函数 在类的成员函数前加上virtual关键字&#xff0c;这个函数就是虚函数。 虚函数的所用就是完成多态。多态示例如下&#xff1a; class A {public:virtual void func()//虚函数{cout << "A" << endl;}void ftwo()//普通函数{cout <&…

一、什么是虚函数

在类的成员函数前加上virtual关键字,这个函数就是虚函数。

虚函数的所用就是完成多态。多态示例如下:

class A
{public:virtual void func()//虚函数{cout << "A" << endl;}void ftwo()//普通函数{cout << "FA" << endl;}
private:int val=1;
};class B :public A
{
public:void func(){cout << "B" << endl;}void Ftwo(){cout << "FB" << endl;}
private:int sum = 1;
};int main()
{B b;A* pa =&b;//父类指针指向子类对象pa->ftwo();pa->func();
}

运行结果如下:

可以看到:父类指针调用函数,若该函数是虚函数,则调用子类的同名函数(无同名调用虚函数)。

                  如果不是虚函数,则正常调用父类的普通函数。

二、静态绑定与动态绑定

将一个名称与内存地址关联起来,就是绑定。

静态绑定:在编译时就完成函数的绑定(非虚函数)。

动态绑定:在运行时才完成函数的绑定(虚函数)。

虚函数要执行哪个版本在运行时才知道,所以是动态绑定。

三、虚函数的使用

3.1使用条件

1、使用环境必须是继承,在父类的成员函数前加virtual       

2、一定是指针或引用调用

3.2注意事项

1、虚函数必须有定义

2、构造函数不能是虚函数

3、函数被声明为虚函数后,所有子类该函数都是虚函数

3.3在子类中的使用

1、想使用虚函数完成多态,子类必须重写父类的虚函数

(重写/覆盖:返回值、函数名、参数列表、const属性必须与父类的虚函数相同。vritual可不加,但建议加上。参数的缺省值一定要相同,不然会有糟糕的后果)

2、当父类返回类型是父类指针/引用时,子类返回值可以为子类指针/引用

class A
{public:virtual A* func()//返回类型为父类指针{cout << "A" << endl;}
private:int val=1;
};
class B :public A
{
public:virtual B* func()//返回类型为子类指针{cout << "B" << endl;}
private:int sum = 1;
};int main()
{B b;A* pa =&b;pa->func();
}

3.4final和override说明符

1、final:在虚函数括号后面加,表示该函数无法被重写

2.override:在重写的函数括号后面加,检查重写是否正确(不加这个,重写写错检查不出来)

四、虚函数表、虚函数表指针

4.1虚表指针

编译器储存虚函数的方法是:给对象添加一个隐藏指针,该隐藏指针指向一个函数数组,这个数组被称为虚函数表,该隐藏指针被称为虚表指针(虚函数表指针),该指针存在类对象的最前面。

以下代码中,类里没有成员变量,但有隐藏的虚表指针,所以大小是8。

4.2虚函数表

父类定义虚函数后,父类对象会将虚函数的地址放到虚函数表中,自身存放一个虚表指针。

子类对象会独立的生成一个与父类相同的虚函数表,如果子类重写了父类的虚函数,那么在子类的虚函数表中会将父类的虚函数地址覆盖为自己的虚函数地址。

http://www.ritt.cn/news/24609.html

相关文章:

  • 做淘宝网站要求与想法怎么seo网站排名
  • 常平做网站公司seo监控
  • 做网站和做app哪个简单2023年5月最新疫情
  • 关于做网站的搞笑段子舆情服务网站
  • 个人博客网站域名注册百度seo排名培训 优化
  • 网站的用户登录一般怎么做的现在的网络推广怎么做
  • 房产获客软件宁波seo教程
  • 做网站优化的话术湖南专业关键词优化
  • jsp源码做网站如何建立网站平台的步骤
  • 建设门户网站申请seo广告优化多少钱
  • 云服务器和网站空间整合营销方案怎么写
  • 做网站赣州什么是论坛推广
  • 网站开发 毕业设计太原网站推广排名
  • 做网站的背景怎么调整大小360优化大师官方官网
  • 温州网站制作建设郑州网
  • 有了域名怎么做自己得网站电脑培训中心
  • 做视频网站视频文件都存放在哪网络营销措施有哪些
  • 做网站需要哪些基本功能东莞网站建设哪家公司好
  • asp 网站 源码市场营销培训课程
  • 开发公司装饰装修合同范本简单seo快速排名网站优化
  • 做网站的设计理念自己怎么创建网站
  • phpcms怎么做网站怎么在百度上添加自己的店铺地址
  • 网站怎么做多语言展示关键词排名推广怎么做
  • 网站系统安全保护等级是必须做的搜索关键词排名优化服务
  • 做的网站提示磁盘空间不足今日热点新闻事件摘抄2022
  • 做网站要坚持百度地图导航
  • 常州做企业网站的公司百度seo查询
  • 有了源码怎么搭建网站企业qq怎么申请
  • 有什么发布做投标报价的网站优化推荐
  • 我想找网站帮忙做宣传网络推广工作好吗