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

上海专业做网站较好的公司百度seo是什么意思呢

上海专业做网站较好的公司,百度seo是什么意思呢,想注册个人网站,登录wordpress后台的管理一、多态的基本语法 多态分为两类 静态多态: 函数重载 和 运算符重载属于静态多态,复用函数名 动态多态: 派生类和虚函数实现运行时多态 静态多态和动态多态区别: 静态多态的函数地址早绑定 - 编译阶段确定函数地址 动态多态的函数地址晚绑定 - 运…

一、多态的基本语法

多态分为两类

静态多态: 函数重载 和 运算符重载属于静态多态,复用函数名

动态多态: 派生类和虚函数实现运行时多态

静态多态和动态多态区别:

静态多态的函数地址早绑定 - 编译阶段确定函数地址

动态多态的函数地址晚绑定 - 运行阶段确定函数地址

#include<iostream>
using namespace std;//多态//动物类
class Animal
{
public://虚函数virtual void speak()//void speak(){cout << "动物在说话" << endl;}
};//猫类
class Cat :public Animal
{
public://重写:函数返回值类型 函数名 参数列表 完全相同称为重写void speak()//子类重写时,前面virtual可写可不写{cout << "小猫在说话" << endl;}
};//狗类
class Dog :public Animal
{
public:void speak(){cout << "小狗在说话" << endl;}
};//执行说话的函数
//地址早绑定	在编译阶段确定函数地址
//如果想执行让猫会说话,那么这个函数地址就不能提前绑定,需要在运行阶段进行绑定,地址晚绑定
//在动物类speak函数前加virtual//动态多态满足条件
//1.有继承关系
//2.子类重写父类的虚函数//动态多态使用
//父类的指针或者引用指向子类对象void doSpeak(Animal &animal)	//Animal &animal = cat
{animal.speak();
}void test1()
{Cat cat;doSpeak(cat);//out:动物在说话 加上virtual之后out:小猫在说话Dog dog;doSpeak(dog);//out:小狗在说话
}int main()
{test1();return 0;
}

总结:

多态满足条件:

1.有继承关系

2.子类重写父类中的虚函数

多态使用条件: 父类指针或引用指向子类对象

重写:函数返回值类型 函数名 参数列表 完全一致称为重写

二、多态的原理剖析

1.未发生重写时,则为继承,把父类中的所有内容都继承一份

2.发生重写时 ,子类中的虚函数表内部会替换成子类的虚函数地址

多态原理:由于写了一个虚函数,类的内部发生改变,多了一个虚函数(表)指针指向虚函数表,表的内部写的是虚函数的函数入口地址,当子类重写虚函数时,会把自身的虚函数表中的函数替换掉,替换成子类的函数,当用父类的引用指向子类对象时(上图右下角部分),由于本身创建的时Cat/Dog的子类对象,所以调用公共的speak接口时,会从子类找函数入口地址,确定什么就(Cat/Dog)输出什么(Cat/Dog).

代码部分:(只增加了一个测试函数 )

#include<iostream>
using namespace std;//多态//动物类
class Animal
{
public://虚函数virtual void speak()//void speak(){cout << "动物在说话" << endl;}
};//猫类
class Cat :public Animal
{
public://重写:函数返回值类型 函数名 参数列表 完全相同称为重写void speak()//子类重写时,前面virtual可写可不写{cout << "小猫在说话" << endl;}
};//狗类
class Dog :public Animal
{
public:void speak(){cout << "小狗在说话" << endl;}
};//执行说话的函数
//地址早绑定	在编译阶段确定函数地址
//如果想执行让猫会说话,那么这个函数地址就不能提前绑定,需要在运行阶段进行绑定,地址晚绑定
//在动物类speak函数前加virtual//动态多态满足条件
//1.有继承关系
//2.子类重写父类的虚函数//动态多态使用
//父类的指针或者引用指向子类对象void doSpeak(Animal &animal)	//Animal &animal = cat
{animal.speak();
}void test1()
{Cat cat;doSpeak(cat);//out:动物在说话 加上virtual之后out:小猫在说话Dog dog;doSpeak(dog);//out:小狗在说话
}void test2()
{cout << "sizeof Animal = " << sizeof(Animal) << endl;//未加virtual:1,加上virtual:4
}int main()
{//test1();test2();return 0;
}

http://www.mmbaike.com/news/94688.html

相关文章:

  • 网站加https有什么帮助seo com
  • 徐州网站建设哪家好免费域名注册网站
  • 营销类网站建设上海网站制作开发
  • 网站 平均加载时间短视频营销策略有哪些
  • 谁会建设网站平台推广是做什么
  • 在哪几个网站里做自媒体赚钱品牌营销策划书
  • 如何开发手机网站国外搜索引擎大全不屏蔽
  • 网站建设公司 壹宇网络百度指数名词解释
  • 在家做私房菜的网站百度竞价排名黑幕
  • 兰州企业建设网站个人模板建站
  • 怎么制作做网站品牌宣传策划公司
  • 网站建设推广优化排名今天重大新闻国内最新消息
  • 做站群的网站怎么来看网站搜什么关键词
  • 做网站的好处和坏处营销手段
  • 做网站搞活动优化设计六年级下册数学答案
  • 长沙哪里可以做网站网站建设需要多少钱?
  • 快手做任务网站网络推广营销网站建设专家
  • 做婚恋网站多少钱百度的首页
  • 如何自己建设电影网站免费网站seo优化
  • 南京网站开发南京乐识强培训网站模板
  • 施工企业成本核算方法360优化大师最新版
  • ecs 网站设计营销和销售的区别
  • 小学文化学网站开发接外包项目的网站
  • 网站建设教程搭建动态网站建设
  • 乌鲁木齐网站开发市场调研分析报告模板
  • 做网站的公司不会设计快速提高排名
  • wordpress建站腾讯云温州百度推广公司电话
  • 用jsp做的可运行的网站c++培训班学费一般多少
  • 黑龙江省建设安全教育信息网扬州网络优化推广
  • 网站宣传方案站内seo内容优化包括