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

58装修接单平台seo报名在线咨询

58装修接单平台,seo报名在线咨询,百度网址大全手机浏览器,wordpress 轮播图代码在派生类中定义一个虚函数 定义派生类时: 将基类中的虚函数覆盖掉:派生类提供新定义,所声明的函数原型必须完全符合基类所声明的函数原型(包括:参数列表、返回类型、常量性);原封不动继承基类…

在派生类中定义一个虚函数

  • 定义派生类时:
  1. 将基类中的虚函数覆盖掉:派生类提供新定义,所声明的函数原型必须完全符合基类所声明的函数原型(包括:参数列表、返回类型、常量性);
  2. 原封不动继承基类中的虚函数;如果继承的是纯虚函数,则这个派生类也会被视为抽象类,无法为它定义任何对象。
  • 在派生类中,如果其基类的同名成员函数已声明为虚函数,则派生类的同名成员函数声明和定义前不用加virtual,即为了覆盖基类的某个虚函数,而进行函数声明时,不一定得加上关键字virtual,编译器会自动根据两个同名函数的原型声明,决定某个函数是否会覆盖其基类中的同名函数。
class num_sequence{
public:virtual const char*what_am_i()const{return "num_sequence\n";}
//...
};
class Fibonacci : public num_sequence{
public:virtual const char* what_am_i(){return "Fibonacci\n";}//编译器报错:基类声明为const,派生类却是non-const//...
};
  • 返回类型必须完全吻合“的一个例外——当基类的虚函数返回某个基类形式(通常是指针或者引用)时,派生类中的同名函数便可以返回该基类所派生出来的类型:
class num_sequence{
public://我们想让派生类的clone()函数可返回一个指针,//指向基类num_sequence的任何一个派生类virtual num_sequence *clone() = 0;//...
};class Fibonacci : public num_seuqence{
public://派生类同名函数不用加virtualFibonacci *clone(){return new Fibonacci(*this);}
//...
};

虚函数的静态解析

为了能够在“单一对象中展现多种类型”,多态需要一层间接性。在C++中,唯有用基类的指针和引用才能够支持面向对象编程概念

虚函数机制无用的两种情况:

  1. 基类的构造函数和析构函数里
  2. 使用的是基类的对象,而非基类对象的指针或引用

所以,在基类的构造函数中,派生类的虚函数绝对不会被调用;基类的析构函数同理。


示例分析:

  • 以下代码中,AudioBook是基类LibMat的派生类,print()在类继承体系中是个虚函数:
void print(LibMat object, const LibMat *pointer, const LibMat &reference)
{//以下必定调用LibMat::print()object.print();//以下一定会通过虚函数机制来解析,//我们无法预知哪一份print()会被调用pointer->print();reference.print();
}
  • 当我们为基类声明一个实际对象(如print()的第一个参数),同时也就分配出了足以容纳该实际对象的内存空间;
  • 如果稍后传入的是个派生类对象,那就没有足够的内存放置派生类中的各个数据成员,例如我们将AudioBook对象传给print()
int main()
{AudioBook iWish("Her pride of 10", "Stanley Lippman", "Jeremy Irons");print(iWish, iWish, iWish);//...
}
  • 只有iWish内的“基类子对象(也就是属于LibMat的成分)”被复制到“为参数对象而保留的内存”中;
  • 其他的子对象(AudioBook成分)则被切掉了;
  • 至于另外两个参数:const LibMat *pointerconst LibMat &reference,则被初始化为iWish对象所在的内存地址;
  • 这就是它们能够指向完整的AudioBook对象的原因。
http://www.tj-hxxt.cn/news/41674.html

相关文章:

  • 怎么买域名自己做网站网络广告人社区
  • 买汽车最好的网站建设产品推广词
  • 学校网站建设措施网络营销策划书1500字
  • 代人做网站软件公司
  • wordpress 头像上传seo查询软件
  • 常青藤网站建设苏州seo安严博客
  • dw做网站一般设为什么样seo狂人
  • 简历制作免费模板网站seo优化评论
  • 做电子商务网站 费用软文范文大全1000字
  • 用家庭宽带做网站网络科技公司
  • 淘宝客怎么在微博做网站中国十大企业培训机构排名
  • 北京南站到北京站坐地铁几号线seo实战培训教程
  • 做同城网站还有机会吗顶尖文案
  • wordpress 腾讯云存储上海关键词排名优化公司
  • 国内十大网站建设品牌seo新人培训班
  • 没有网站如何做adsenseseo工作内容和薪资
  • 网页制作素材怎么分类seo最新优化技术
  • bl做视频网站seo推广员是做什么的
  • 网站设计小技巧太原seo网站排名
  • 公司做网站的费属于广告费么开发软件app需要多少钱
  • 企业门户网站怎么做天津seo网站管理
  • 推广app赚佣金企业seo自助建站系统
  • 公司网站备案条件平台推广广告宣传词
  • 宣传部总结网站建设电商平台哪个最好最可靠
  • 百度网站改版seo运营
  • 深圳建设网站服务网上网络推广
  • python网站开发论文1688关键词排名查询
  • 广安网站开发企业营销策略分析论文
  • 个人微商城怎么开通北京优化seo排名
  • 写的网站怎么做接口重庆seo网站管理