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

河北城乡建设学校网站中国vs菲律宾世预赛

河北城乡建设学校网站,中国vs菲律宾世预赛,领导高度重视门户网站建设,石家庄网站推广派生类对象中包含基类对象#xff0c;因此派生类对象在创建时#xff0c;除了要调用自身的构造函数进行初始化外#xff0c;还要调用基类的构造函数初始化其包含的基类对象。因此#xff0c;程序中任何能够生成派生类对象的语句#xff0c;都要说明其包含的基类对象是如何…派生类对象中包含基类对象因此派生类对象在创建时除了要调用自身的构造函数进行初始化外还要调用基类的构造函数初始化其包含的基类对象。因此程序中任何能够生成派生类对象的语句都要说明其包含的基类对象是如何初始化的。如果对此不做说明则编译器认为基类对象要用无参构造函数初始化——如果基类没有无参构造函数则会导致编译错误。在执行一个派生类的构造函数之前总是先执行基类的构造函数。和封闭类说明成员对象如何初始化类似派生类说明基类对象如何初始化也需要在构造函数后面添加初始化列表。在初始化列表中要指明调用基类构造函数的形式。具体写法如下构造函数名(形参表): 基类名(基类构造函数实参表){...}派生类对象消亡时先执行派生类的析构函数再执行基类的析构函数。下面的程序演示了派生类的构造函数和析构函数的调用顺序#include #include using namespace std;class CBug {int legNum, color;public:CBug(int ln, int c1) : legNum(ln), color(c1){cout CBug Constructor endl;};~CBug(){cout CBug Destructor endl;}void Printlnfo(){cout legNum , color endl;}};class CFlyingBug : public CBug{int wingNum;public://CFlyingBug(){} 若不注释掉则会编译出错CFlyingBug::CFlyingBug(int ln, int c1, int wn) : CBug(ln, c1), wingNum(wn){cout CFlyingBug Constructor endl;}~CFlyingBug(){cout CFlyingBug Destructor endl;}};int main() {CFlyingBug fb(2, 3, 4);fb.Printlnfo();return 0;}程序输出结果CBug ConstructorCFlyingBug Constructor2,3CFlyingBug DestructorCBug Destructor第 25 行如果没有注释掉会编译出错。因为这个构造函数没有说明在派生类对象用该构造函数初始化的情况下其基类对象该如何初始化——这也就意味着基类对象应该用无参构造函数初始化可是 CBug 类并没有无参构造函数所以编译会出错。第 26 行中的“CBUg(ln, c1)”指明了在派生类对象用该构造函数初始化的情况下其基类对象的初始化方式。思考题派生类对象生成时要先执行基类构造函数消亡时要先执行自身析构函数再执行基类析构函数为什么和封闭类的情况类似如果一个派生类对象是用默认复制构造函数初始化的那么它内部包含的基类对象也要用基类的复制构造函数初始化。多层次的派生在 C 中派生可以是多层次的。例如学生类派生出中学生类中学生类又派生出初中生类和高中生类。总之类 A 派生类 B类 B 可再派生类 C类 C 又能派生类 D以此类推。这种情况下称类 A 是类 B 的直接基类类 B 是类 C 的直接基类类 A 是类 C 的间接基类。当然类 A 也是类 D 的间接基类。在定义派生类时只写直接基类不写间接基类。派生类沿着类的层次自动向上继承它所有的间接基类。派生类的成员包括派生类自己定义的成员、直接基类中定义的成员以及所有间接基类的全部成员。当派生类的对象生成时会从最顶层的基类开始逐层往下执行所有基类的构造函数最后再执行自身的构造函数当派生类对象消亡时会先执行自身的析构函数然后从底向上依次执行各个基类的析构函数。例如下面的程序#include using namespace std;class A {public:int n;A(int i) :n(i) { cout A n constructed endl; }~A() { cout A n destructed endl; }};class B :public A{public:B(int i) :A(i) { cout B constructed endl; }~B() { cout B destructed endl; }};class C :public B {public:C() :B(2) { cout B constructed endl; }~C() { cout B destructed endl; }};int main(){C Obj;return 0;}程序的输出结果A 2 constructedB constructedB constructedB destructedB destructedA 2 destructed包含成员对象的派生类在派生类也是封闭类的情况下构造函数的初始化列表不但要指明基类对象的初始化方式还要指明成员对象的初始化方式。派生类对象生成时会引发一系列构造函数调用顺序是先从上至下执行所有基类的构造函数再按照成员对象的定义顺序执行各个成员对象的构造函数最后执行自身的构造函数而派生类对象消亡时先执行自身的析构函数然后按与构造的次序相反的顺序依次执行所有成员对象的析构函数最后再从底向上依次执行各个基类的析构函数。
http://wiki.neutronadmin.com/news/32587/

相关文章:

  • 360网站图标怎么做青柠影院免费观看高清电视剧
  • 2017年网站推广怎么做游戏开发师
  • 杭州本地网站有哪些个人简历模板免费网站
  • 廊坊论坛网站建设西安网站制作维护
  • wordpress个人资料站点三明交通建设集团网站
  • 电子商务网站有哪些内容扫wordpress漏洞工具
  • 新乡做网站费用wordpress 固定链接 seo
  • net域名做网站怎么样产品做网站
  • 网站建设的维护工作偃师网络营销的概念
  • wordpress产品网站网站开发 软文
  • 福州公司网站设计一个网站完整详细的seo优化方案
  • 外汇网站模版湛江网站建设
  • 广州陈村网站建设云南网站设计方案
  • 如何建设公众平台网站物流网站平台建设
  • 网站导航是什么意思宿迁市建设局网站怎么投诉
  • 物流推广做哪个网站新闻联播直播 今天
  • 如何建立网站站点各种推广平台
  • 考网站开发工程师加盟什么连锁最挣钱
  • 网站的折线图怎么做动易初级中学网站模板cms 6.8
  • 盘锦市建设银行网站图片转链接在线转换
  • html成品网站手表网站免费设计
  • 如何做明星的个人网站wordpress生成静态html页面
  • 做爰全过程免费费网站山西建筑网站设计设计
  • 360兼容模式网站错位静态网页模板网站
  • 网站改版目的网站下载软件怎么安装
  • 网站服务器错误403官方网站的重要性
  • 门户网站建设方案是什么意思成品网页大全下载
  • 调用别人网站注册表单零食店网站构建策划报告
  • 网站开发需要经历哪些主要阶段html教程菜鸟教程w3school
  • 中建名城建设有限公司 网站大麦网网站建设的功能定位