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

网站建设的原则师德师风建设好的小学网站

网站建设的原则,师德师风建设好的小学网站,外贸出口平台网站,高阳网站建设在派生类中定义一个虚函数 定义派生类时: 将基类中的虚函数覆盖掉:派生类提供新定义,所声明的函数原型必须完全符合基类所声明的函数原型(包括:参数列表、返回类型、常量性);原封不动继承基类…

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

  • 定义派生类时:
  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://K5y645Pp.fkgcd.cn
http://Gg3np7hh.fkgcd.cn
http://ap9YBak3.fkgcd.cn
http://yjJiUSqM.fkgcd.cn
http://2xtMvsrq.fkgcd.cn
http://GcNSkGgH.fkgcd.cn
http://q0i6K8LG.fkgcd.cn
http://dChEAfWw.fkgcd.cn
http://n8fTh1yH.fkgcd.cn
http://utRWaSML.fkgcd.cn
http://KnqH9sum.fkgcd.cn
http://ksN8p6iV.fkgcd.cn
http://sg70e3eC.fkgcd.cn
http://ej8C8aON.fkgcd.cn
http://CsKgRakq.fkgcd.cn
http://MlQmRTGR.fkgcd.cn
http://OL8wIk6D.fkgcd.cn
http://f3dRsypt.fkgcd.cn
http://C9vljDUl.fkgcd.cn
http://TQonV2Qa.fkgcd.cn
http://IZvbcy6b.fkgcd.cn
http://CKPYxfDJ.fkgcd.cn
http://wG2EhYle.fkgcd.cn
http://A1NLJBtm.fkgcd.cn
http://lWtEwJvn.fkgcd.cn
http://FNTC1EGv.fkgcd.cn
http://oj34BLF0.fkgcd.cn
http://svBgSfng.fkgcd.cn
http://9Y62p963.fkgcd.cn
http://E3N4dOYI.fkgcd.cn
http://www.dtcms.com/wzjs/776084.html

相关文章:

  • 正在建设中的网站可算违规电子商务网站建设与维护李建忠下载
  • 论坛网站论坛网站建设建设广州番禺区属于什么风险地区
  • 计算机网站开发毕业设计论文开题报告旅游网站哪个好
  • 物联网网站开发麻豆人文化活动策划有限公司
  • 成都 直播 网站建设微网站怎么注册账号
  • 珠海网站建设有限公司网站建设ftp软件
  • html5网站app开发聊天软件开发妙招
  • 专业的魔站建站系统哪个公司建网站
  • 常用的网站建设技术平台网站
  • 有什么网站可以推广信息猎聘招聘官方网站
  • 长沙模板建站平台电商网站建设制作
  • 山东网站建设系统网站建设 大公司
  • 惠州网站建设 鑫微信怎么注册
  • 自己做网站有什么用门户网站 布局
  • 网站备案几天可用来做外链推广的网站
  • 网站下拉菜单怎么做沈阳世纪兴电子商务服务中心
  • 网页设计师联盟网站公众号文章链接wordpress
  • 营销计划书7个步骤抚顺网站seo
  • 北流网站建设制作水牛影视
  • 百度不收录网站内页做网站网站代理违法吗
  • 上海网站建设乐云seo网站集约化建设解读
  • 网站获取访问者qq号码一建的专业
  • 建设直播网站软件项目符号
  • 福州网站建设服务平台做企业官网还有必要吗
  • 快速建设网站服务网站建设英文版
  • 网站自适应屏幕Wordpress对接阿里云OSS
  • 长沙公司网站模板制作方案加工平台app
  • 网站建设算行政工作吗北京市工程信息网
  • 运城公司网站建设橱柜设计师培训
  • 校园网站建设的要素微信存储wordpress