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

网站制作开发及优化是什么爱站网长尾词挖掘工具

网站制作开发及优化是什么,爱站网长尾词挖掘工具,教育集团网站设计策划书,免费行情软件app网站大全下载有图片提示:继承基础概念 文章目录 一、继承1.1 基础概念1.2 继承作用与继承方式1.2 继承中的隐藏1.3 类中构造、析构在继承方面知识1.4 继承知识拓展 一、继承 1.1 基础概念 继承机制是面向对象程序设计使代码可以复用的最重要的手段,它允许在保持原有类特性…

提示:继承基础概念

文章目录

  • 一、继承
    • 1.1 基础概念
    • 1.2 继承作用与继承方式
    • 1.2 继承中的隐藏
    • 1.3 类中构造、析构在继承方面知识
    • 1.4 继承知识拓展


一、继承

1.1 基础概念

继承机制是面向对象程序设计使代码可以复用的最重要的手段,它允许在保持原有类特性的基础上进行扩展,增加功能,这样产生新的类,称派生类,继承呈现了面向对象程序设计的层次结构,体现了由简单到复杂的认知过程。

1.2 继承作用与继承方式

//继承定义-派生类 : 继承方式-基类
class Student:public Person
类成员/继承方式public继承protected继承private继承
基类的public成员派生类的public成员派生类的protected成员派生类的private成员
基类的protected成员派生类的protected成员派生类的protected成员派生类的private成员
基类的private成员派生类中不可见派生类中不可见派生类中不可见

继承又分类为继承方式与访问限定。
继承与访问都适用于向下兼容。
总结:

  1. 基类private(私有)成员在派生类中无论以什么方式继承都是不可见的,这里的不可见是指基类的私有成员还是被继承到派生类对象中,但语法上限制派生类对象不管在类里面还是类外面都不能去访问它。
  2. 基类中不想再类外直接被访问,又需要再派生类中能访问,就可以定义为protected(保护)。保护成员限定符是因为继承才出现的。protected:一种VIP机制,限定了一部分人的访问权限,又让另一部分人可以访问到。
  3. 基类除了私有成员其他成员都是向下兼容的。
  4. 实际中多用public,protected与private意义不大。

1.2 继承中的隐藏

概念:如果子类和基类存在相同名称的成员,当使用派生类对象想用该同名称的成员时,优先调用的是子类的,基类的无法直接被调用到,相当于子类将基类中同名成员屏蔽了。
同名隐藏需要注意的点:
基类与子类的关系,且隶属于不同的作用域,若想要通过子类对象调用相同名称的基类成员,必须在该成员前加基类名称以及作用域限定符。
**成员变量隐藏:**只与成员变量名是否相同有关,与成员变量类型是否相同无关。
**成员函数隐藏:**只与函数名是否相同有关于幻术原型是否相同无关。

1.3 类中构造、析构在继承方面知识

派生类对象构造时:
虽然是派生类构造,但是会有优先构造基类对象的成员函数,函数调用的过程 调用派生类构造函数–>然后再派生类构造函数初始化列表的位置调用基类构造函数,完成基类部分成员的初始化工作–>然后才执行派生类构造函数函数体。
当无实例化的基类或派生类构造函数时,因为是类的默认成员函数所以,会自动生成默认成员函数
派生类对象析构时:
析构哪个类的对象,编译器就会调用那个类的析构函数,析构的过程是先调用派生类的析构函数,完成派生类中资源的清理,然后编译器再派生类析构函数最后一句插入call基类析构函数的汇编指令,才会执行基类的析构函数以完成清理。
派生类析构–>基类析构

1.4 继承知识拓展

继承有非常多种的方式例如:
单继承、多继承、菱形继承、虚拟继承、菱形虚拟继承
**单继承:**普通继承方式
**多继承:**指一个类可以继承多个父类特征,从而复用这些父类的组成于方法,或扩展父类的功能。
**菱形继承:**多继承的一种,菱形继承是一种错误的类继承使用方式,指的是再类中有部分继承过程产生了像菱形一样的继承关系。这样在使用类D时,类D中就会有两份类A的关系链路,就会出现名称冲突了,内存浪费,二意性等等的问题。
在这里插入图片描述

// 同时还会引发更大的问题 二义性
#include <iostream>class person
{
public:std::string _name;
};
class student : public person
{
protected:int _num;
};
class teacher : public person
{
protected:int _id;
};
class start : public student, public teacher
{std::string _course;
};int main()
{// 二义性的由来start a;错误 --> a._name = "zhangsan";只能 --> a.student::_name = "xxx";或者 --> a.teacher::_name = "yyy";return 0;
}

专职赋值才可以
在这里插入图片描述

**虚拟继承:**虚拟继承是C++中为了解决菱形继承而出现的,虚拟继承的实现方式

class A{
// A成员
}
class B : virtual public A{
// B成员
}
class C : virtual public A{
// C成员
}
class D : public B,public C{
// D成员
}
---------------------------------------------------
class person
{
public:std::string _name;
};
class student : virtual public person
{
protected:int _num;
};
class teacher : virtual public person
{
protected:int _id;
};
class start : public student, public teacher
{std::string _course;
};int main()
{start a;a._name = "zhangsan"; // 当为虚拟继承时,可以正常编译//a.student::_name = "xxx";//a.teacher::_name = "yyy";return 0;
}

在这里插入图片描述
虚拟继承在派生类中使用virtual来指定虚拟继承,它保证了在派生类中只有一份共享的基类子对象。

http://www.zhongyajixie.com/news/38137.html

相关文章:

  • 网站制作最流行软件互联网营销工具
  • 站长工具seo综合查询方法免费个人网站平台
  • 瑜伽网站设计企业营销网站
  • html建设网站奶茶店营销软文
  • 网站建设部署与发布如何推广网店
  • 湘潭网站建设电话中国万网登录入口
  • 专门做文创产品的网站seo公司是什么
  • 西宁设计网站各大搜索引擎收录入口
  • 福州金山网站建设宁波seo外包平台
  • centos7做网站网页广告怎么投放
  • 做网页和做网站详情页设计
  • 做网站是干什么的产品推广网站哪个好
  • 什么网站动物和人做的关键词检索
  • 网站开发招标任务书推广引流怎么做
  • 重庆专业做网站互联网产品推广是做什么的
  • 网站域名所有权查询男生和女生在一起探讨人生软件
  • 鲜花便宜的网站建设网络营销主要有哪些特点
  • 网站里的图片是怎么做的公司网络推广该怎么做
  • 国产做爰网站长沙官网seo技巧
  • 暖色调 网站网站提交入口链接
  • 个人网站建站系统网站seo优化检测
  • 企业品牌战略优化生育政策
  • 做网站一般几个步骤外包公司值得去吗
  • 各人可做的外贸网站2024年新闻时事热点论文
  • html5video网站b站黄页推广
  • 网站建设策划优点下拉词排名
  • 南京网站建设网站设计网站交易
  • 哈尔滨做设计和网站的公司培训机构有哪些
  • 手机网站的文本排版是怎么做的互联网营销培训班
  • 网站建设公司常州关键词搜索排名