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

世界技能大赛网站建设百度风云排行榜官网

世界技能大赛网站建设,百度风云排行榜官网,重庆网站建设咨询,建筑工程最新规范查询1. 派生类的成员变量、成员函数、构造、析构 2. 继承的切片 3. 重定义/隐藏 重定义/隐藏:派生类和基类有同名的成员,就叫隐藏。派生类的成员隐藏了基类的成员。 隐藏时可以通过类作用限定符来访问被隐藏的成员。 class Person { public:void Print(){…

1. 派生类的成员变量、成员函数、构造、析构

在这里插入图片描述

2. 继承的切片

在这里插入图片描述

3. 重定义/隐藏

重定义/隐藏:派生类和基类有同名的成员,就叫隐藏。派生类的成员隐藏了基类的成员。

隐藏时可以通过类作用限定符来访问被隐藏的成员。

class Person
{
public:void Print(){cout << "Person " << ID << endl;}string name;	// 姓名int ID = 0;			// 身份证号
};// 派生类Student继承了基类Person
class Student : public Person
{
public:void Print(){cout << "Student " << ID << endl;}int ID = 1;	// 学号
};// 派生类Teacher继承了基类Student
class Teacher : public Student
{
public:void Print(){cout << "Teacher " << ID << endl;}int ID = 2;	// 工号
};
// 重定义/隐藏
void Test3()
{// 在上面的三个类中,成员函数Print()和成员变量ID都属于隐藏/重定义Person per;Student stu;Teacher tea;tea.Print();tea.Student::Print();tea.Person::Print();
}
// 输出结果为:
// Teacher 2
// Student 1
// Person 0

4. 派生类的默认成员函数

在说继承的切片时提到,我们可以将派生类中从基类那里拷贝过来的一部分成员变量看作一个整体,视为一个新的成员变量,它的类型是基类。
因此,在讨论派生类的默认成员函数的时候,我们就能明白一些规则。

为了方便叙述,我们对派生类进行以下划分:
在这里插入图片描述

  1. 构造函数

    在类中,若存在一个成员变量也是一个类,那么构造函数就会自动调用这个成员变量的默认构造函数,这里也是这个道理。

    派生类的构造函数会调用基类的默认构造函数,以完成对属于基类的那一部分的成员(上图的A部分)的初始化。如果基类没有默认构造函数,那么在派生类的构造函数中,就要显式调用基类的构造函数。

    先调用基类的构造,完成对A部分的构造,再构造B部分自己。

  2. 拷贝构造

    B部分的拷贝需要派生类自己来实现,但是A部分,则需要调用基类的拷贝构造函数来完成拷贝。

  3. 赋值运算符重载 operator=

    同理,A部分也需要调用基类的赋值运算符重载来完成这部分的赋值初始化。

  4. 析构函数

    先完成对B部分的析构,然后不用显式调用,编译器会自动调用基类的析构函数,来完成A部分的析构。

5. 继承与友元

友元关系并不能继承。
基类的友元,并不是派生类的友元,就好比父亲的朋友并不一定是孩子的朋友。
如果想要既是基类的友元,又是派生类的友元,则需要在两个类中都声明友元。

6. 继承与静态成员

基类中的静态成员,会和成员函数一样,仅仅生成一份,所有派生类用到的静态成员,都是这一份。这样做避免空间浪费。

7. 菱形继承和菱形虚拟继承

C++中允许多继承,也就是一个类继承了两个父类,这必然导致一个问题:菱形继承,请参考下图:
在这里插入图片描述

可见,在D类对象中,存了两份int a,这导致二义性和数据冗余的问题,在访问d对象中的a成员时,访问的是从B类中继承来的a呢,还是从C类中继承来的a?当然,解决方案就是:继承时,在作用域限定符::后加上关键字virtual
这便是虚拟继承,可以让int a 进存一份,B类对象、C类对象以及D类对象,仅需通过偏移量就可以得到a的地址。

用域限定符::后加上关键字virtual
这便是虚拟继承,可以让int a 进存一份,B类对象、C类对象以及D类对象,仅需通过偏移量就可以得到a的地址。

8. 组合

http://www.dtcms.com/wzjs/166256.html

相关文章:

  • 网页网站开发助理搜索引擎营销方法主要有三种
  • 如何在网站上做咨询浮动窗口全网推广系统
  • 购买了域名之后怎么做网站百度知道app
  • 东莞网站建设备案济宁百度竞价推广
  • 安全的网站制作公司自己怎么制作一个网站
  • 南京做网站建设的公司竞价托管
  • 最好的网站建设报价野狼seo团队
  • 阿里云主机做网站2023年国家免费技能培训
  • 物流官方网站厦门seo网络推广
  • 怎么让百度收录你的网站百度权重是怎么来的
  • 网站开发各小组互评表南宁一站网网络技术有限公司
  • 株洲营销型网站建设全网推广成功再收费
  • 外贸网站 栏目百度推广可以自己开户吗
  • 金塔精神文明建设网站网店代运营诈骗
  • 手机网站排名优化广州:推动优化防控措施落
  • 国外网站怎么做推广站长申论
  • 网站开发课设域名批量查询注册
  • 网站分享平台7个经典软文营销案例
  • 嘉兴网站定制公司镇江网站建设方案
  • 毕业设计做 什么网站好百度如何做推广
  • 瓯海网站建设aso优化费用
  • 兰州建设网站公司线下推广宣传方式有哪些
  • 做网站内嵌地图广告联盟点击赚钱平台
  • 请为hs公司的钻石礼品网站做网络营销沟通策划_预算是20万.厦门关键词seo排名网站
  • 旅游网站建设初衷西安百度网站排名优化
  • 做购物网站是怎么连接银行谷歌推广外包
  • 如何建立自己的公司seo排名优化推广
  • 怎么做算命的网站太原百度快照优化排名
  • 要做网站照片怎么处理今天的三个新闻
  • 专门做萝莉视频网站seo是什么及作用