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

陕西省建设执业中心网站网站建设的创意

陕西省建设执业中心网站,网站建设的创意,安徽富通建设有限公司网站,wordpress回到顶端插件类的继承 ● 通过类的继承(派生)来引入“是一个”的关系( 17.2 — Basic inheritance in C) – 通常采用 public 继承( struct V.S. class ) – 注意:继承部分不是类的声明 – 使用基类的指针…

类的继承
● 通过类的继承(派生)来引入“是一个”的关系( 17.2 — Basic inheritance in C++)
在这里插入图片描述

– 通常采用 public 继承( struct V.S. class )
– 注意:继承部分不是类的声明
– 使用基类的指针或引用可以指向派生类对象

struct Base
{};
struct Base2 : Base
{};struct Derive : Base2 //注意,不是声明,该语句等价于struct Derive : public Base,即struct缺省继承方式为public
//class Derive : Base2 //等价于class Derive : private Base,即class缺省继承方式为private
{};int main()
{Derive d;Base& ref = d; //OKBase* ptr = &d; //OK
}

– 静态类型 V.S. 动态类型

struct Base
{void funBase() {} //静态类型
};
struct Base2 : Base
{void funBase2() {} //静态类型
};
struct Derive : Base2
{void funDerive() {} //静态类型
};
struct Derive2 : Base2
{void funDerive2() {} //静态类型
};
int main()
{Derive d;Derive2 d2;Base& ref = d; //静态类型: 即编译期就能决定的类型且不能改变Base* ptr = &d; //动态类型ref.funBase(); //OK,静态类型没有改变ref.funDerive(); //静态类型不能发生改变,Error: No member named 'funDerive' in 'Base'ptr = &d2; //OK,动态类型可以在运行期发生改变return 0;
}

– protected 限定符:派生类可访问

struct Base
{
private:void funBase() {}
};
struct Derive : Base
{void funDerive(){funBase(); //Error: 'funBase' is a private member of 'Base'}
};
int main()
{Base b;b.funBase(); //Error: 'funBase' is a private member of 'Base'return 0;
}
struct Base
{void funBase() {}
};
struct Derive : Base
{void funDerive(){funBase(); //OK}
};
int main()
{Base b;b.funBase(); //OKDerive d;d.funBase(); //OKd.funDerive(); //OKreturn 0;
}
struct Base
{
protected:void funBase() {}
};
struct Derive : Base
{void funDerive(){funBase(); //OK}
};
int main()
{Base b;b.funBase(); //Error: 'funBase' is a protected member of 'Base'Derive d;d.funBase(); //Error: 'funBase' is a protected member of 'Base'd.funDerive(); //OKreturn 0;
}

● 类的派生会形成嵌套域
– 派生类所在域位于基类内部
– 派生类中的名称定义会覆盖基类

struct Base
{int val = 2;
};
struct Derive : Base
{void funDerive(){std::cout << val << std::endl;}int val = 3;
};
int main()
{Derive d;d.funDerive();return 0;
}

在这里插入图片描述

struct Base
{int val = 2;
};
struct Derive : Base
{void funDerive(){std::cout << val << std::endl;}//int val = 3;
};
int main()
{Derive d;d.funDerive();return 0;
}

在这里插入图片描述

– 使用域操作符显式访问基类成员

struct Base
{int val = 2;
};
struct Derive : Base
{void funDerive(){std::cout << val << std::endl;std::cout << Base::val << std::endl;}int val = 3;
};
int main()
{Derive d;d.funDerive();return 0;
}

在这里插入图片描述

– 在派生类中调用基类的构造函数

struct Base
{Base(){std::cout << "Base()\n";}
};
struct Derive : Base
{Derive(){std::cout << "Derive()\n";}
};
int main()
{Derive d;return 0;
}

在这里插入图片描述

struct Base
{Base(int){std::cout << "Base()\n";}
};
struct Derive : Base
{Derive(int a) //缺省构造函数调用基类的缺省构造函数,Error: Constructor for 'Derive' must explicitly initialize the base class 'Base' which does not have a default constructor{std::cout << "Derive()\n";}
};
int main()
{Derive d;return 0;
}
struct Base
{Base(int){std::cout << "Base()\n";}
};
struct Derive : Base
{Derive(int a) //缺省构造函数调用基类的缺省构造函数,Error: Constructor for 'Derive' must explicitly initialize the base class 'Base' which does not have a default constructor: Base(a) //显式调用基类的构造函数{//Base::Base(a); //Error: Qualified reference to 'Base' is a constructor name rather than a type in this contextstd::cout << "Derive()\n";}
};
int main()
{Derive d(2);return 0;
}

在这里插入图片描述

参考
深蓝学院: C++基础与深度解析
17.2 — Basic inheritance in C++

http://www.sczhlp.com/news/74973/

相关文章:

  • 淘宝客的网站怎么做呢建设企业网站需要什么呢
  • 成品网站w灬源码伊园手机app开发软件有哪些
  • 江门市做网站求有颜色的公众号
  • Python 偏函数
  • Magnet DVR Examiner 3.19 for Windows - 视频取证软件
  • 南京做电商网站的公司矢量插画的网站
  • Cyber Triage 3.15 for Windows - 面向事件响应的数字取证软件
  • 好的网站具备的条件两学一做网站 苏州
  • 网站开发 行业动态建一个快讯网站要多少钱
  • 哪个网站做简历免费下载龙岗已经被深圳抛弃了吗
  • 网站开发人员的工作企业官网开源
  • django做网站怎样手机百度网页版登录入口
  • 制作微信商城网站开发网站的结构类型
  • 惠东网络建站公司网站内链接分析
  • 清河做网站哪里好菜单设计制作模板免费
  • 怎样免费建一个网站网站设计制作从哪
  • 中国建设银行笔试确认网站深圳住建网
  • spark streaming窗口操作内存占用要怎么估算
  • 数据结构与算法-15.线性表-栈
  • [豪の学习笔记] 软考中级备考 基础复习#2
  • 0122_享元模式(Flyweight)
  • 9月Cursor绑卡时代来临!真实卡扣费风险大,这个工具让你无忧
  • 常州 招网站开发重庆可作为推广的网站
  • 装修的网站深圳开发的购物网站
  • 桐庐建设局网站外卖网站的建设与推广
  • thinkphp搭建的微网站如何做简洁网站设计
  • 解决同时连接wifi和网线无法上网的问题
  • Cookie讲解
  • 【原创软件】第14期:FastWordReplace-Word文字批量替换工具V1.1
  • redis 6 多线程模型 - ukyo-