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

文学网站做编辑网络推广靠谱吗

文学网站做编辑,网络推广靠谱吗,广州建盏工程设计有限公司,合肥市建设工程信息价网站利用继承技术,减少重复代码 6.1 基本语法 子类继承父类 class Father // 父类(基类) {}; class chile:public Father // 子类(派生类) {}; 6.2 继承方式 公共继承保护继承私有继承 三种继承方式,子类…

利用继承技术,减少重复代码

6.1 基本语法

  • 子类继承父类
class Father // 父类(基类)
{};
class chile:public Father // 子类(派生类)
{};

6.2 继承方式

  1. 公共继承
  2. 保护继承
  3. 私有继承

三种继承方式,子类都无法访问父类的私有成员

6.3 继承中的对象模型

  • 父类中所有非静态成员属性(包括私有属性)都会被子类继承下去,占用子类的内存空间

6.4 继承中的构造和析构函数执行顺序

  • 子类继承父类后,创建子类对象时,也会创建父类对象
  • 构造函数调用顺序:父类->子类
  • 析构函数调用顺序:子类->父类

6.5 继承中同名成员处理方式

  • 当父类和子类中出现同名非静态成员时,子类对象访问子类和父类同名数据的方式:

class Base
{
public:Base(){m_A = 100;}void func(){std::cout << "Base func." << std::endl;}void func(int a){}int m_A;
};
​
class Test:public Base 
{
public:Test(){m_A = 200;}void func(){std::cout << "Test func." << std::endl;}int m_A;
};

(1)子类成员:直接访问

int main()
{Test test;std::cout << test.m_A << std::endl; // 200-访问的是子类自己的成员属性m_Atest.func(); // Test func.-调用子类成员函数func()
}

(2)父类成员:加作用域访问

int main()
{Test test;std::cout << test.Base::m_A << std::endl; // 100-访问的是父类的成员属性m_Atest.Base::func(); // Base func.-调用父类成员函数func()
}

(3)子类同名的成员函数会直接隐藏掉父类中所有同名的成员函数--包括重载的成员函数

int main()
{Test test;test.func(10); // 函数调用报错,子类中只有无参的func(),父类中两个func函数被屏蔽test.Base::func(10); // 可通过加作用域的方式调用父类函数
}
  • 当父类和子类中出现同名静态成员时,子类对象访问子类和父类同名数据的方式:

  1. 与非静态成员方式一致
  2. 还可以直接使用类名类访问
Test::Base::staticFunc();

6.6 多继承

  • C++允许一个子类继承多个父类
class Father1 // 父类(基类)
{};
class Father2 // 父类(基类)
{};
class chile:public Father,public Father2 // 子类(派生类)
{};
  • 多个父类中所有的非静态成员属性都会被子类继承过来,占用子类空间
  • 多继承中出现同名成员,需要注意加作用域,避免出现二义性

6.7 菱形继承

  1. 两个派生类同时继承一个基类
  2. 两个派生类又同时被另一个类继承

(1)典型案例


class Animal
{
public:int m_Age;
};
class Yang:public Animal {};
class Tuo:public Animal {};
class YangTuo:public Yang,public Tuo {};

(2)菱形继承问题

  • 多继承的二义性

使用父类作用域可以解决二义性问题

  • 多继承继承两份数据--浪费空间

使用虚继承可以解决空间浪费问题,相当于多个父类共享一个成员数据

class Animal // 虚基类
{
public:int m_Age;
};
class Yang:virtual public Animal {}; // 虚继承
class Tuo:virtual public Animal {}; // 虚继承
class YangTuo:public Yang,public Tuo {};
​
int main()
{YangTuo yt;yt.Yang::m_Age = 10; // 加作用域区分继承的父类yt.Tuo::m_Age = 20; // 加作用域区分继承的父类yt.m_Age = 30; // 应用虚基类后可以直接使用,不会造成二义性问题
}
// 应用虚继承后,从虚基类继承下来的属性只有一份,且是共享的,其值为最后一次修改的值

虚继承的本质:两个派生类继承两个虚拟指针vbptr(virtual base pointer),两个指针指向同一个数据

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

相关文章:

  • 北京网站建设还公司seo上海优化
  • 自己做的网站收录怎么提升百度云搜索引擎
  • 网易那个自己做游戏的网站是什么南宁百度推广排名优化
  • 注册公司费用要多少seo平台代理
  • 西昌做网站电商网站建设教程
  • 网站视频打不开什么原因百度推广退款电话
  • 网站建设策划书ppt百度客服投诉中心
  • 怎么在ps里做网站设计青岛seo代理计费
  • wordpress如何搭建博客天津seo优化公司
  • 网站建设公司浩森宇特网络推广方法的分类
  • 品牌网站设计方案东莞seo优化公司
  • 静态网站开发百科百度网盘搜索引擎入口哪里
  • 模仿网站制作郑州网站网页设计
  • 上海网站建设需要多少钱搜索引擎排名优化方法
  • 怎么做自己的网址seo推广方法有哪些
  • 通化网站制作seo搜索引擎优化书籍
  • 做网站要多少钱一个网站诊断工具
  • 做移动网站郑州seo顾问热狗
  • 手机怎样做网站今天新闻头条
  • 建站快车代理平台系统seo营销外包公司
  • 韩城搜索引擎建设网站营销推广的作用
  • 池州网站建设怎么样百度应用下载安装
  • 怎样设置网站主域名怎么做神马搜索排名seo
  • 游戏建设网站网站百度关键词seo排名优化
  • php网站开发所需要的软件营销公司排名
  • 免费教育网站建设济南疫情最新消息
  • 什么网站可以做微官网常德今日头条新闻
  • 微网站开发平台有哪些好的发布任务注册app推广的平台
  • 深圳做营销网站制作游戏优化软件
  • 建设网站对于电商的作用是?吉安seo