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

做公司网站公司多少钱西安百度推广网站建设

做公司网站公司多少钱,西安百度推广网站建设,广告设计制作方案,如何搭建网站的支付接口文章目录 1.类的静态成员2.友元函数1.基本概念2.语法3.特性 3.继承1.访问控制2.多态1. 关键概念2. 动态绑定 3. 虚析构函数的必要性4.多重继承1. 菱形继承 1.类的静态成员 静态成员属于类本身,而非特定对象。 静态成员变量 静态成员函数 不能访问非静态成员&…

文章目录

    • 1.类的静态成员
    • 2.友元函数
      • 1.基本概念
      • 2.语法
      • 3.特性
    • 3.继承
      • 1.访问控制
      • 2.多态
        • 1. 关键概念
        • 2. 动态绑定
    • 3. 虚析构函数的必要性
    • 4.多重继承
        • 1. 菱形继承

1.类的静态成员

静态成员属于类本身,而非特定对象。

静态成员变量

静态成员函数

  • 不能访问非静态成员(无this指针)。
  • 可直接通过类名调用:Counter::getCount()。

2.友元函数

1.基本概念

  • 友元函数:允许非成员函数访问类的私有和保护成员。
  • 友元类:允许一个类访问另一个类的私有和保护成员。
  • 友元成员函数:允许一个类的特定成员函数访问另一个类的私有和保护成员。

2.语法

在类中使用 friend 关键字声明友元函数。

3.特性

  • 非传递性:若类 A 是 B 的友元,B 是 C 的友元,A 并不自动成为 C 的友元。
  • 单向性:友元关系不可逆转(若 A 是 B 的友元,B 不一定是 A 的友元)。
  • 不继承:基类的友元不会自动成为派生类的友元。

3.继承

继承是面向对象编程的核心特性,允许一个类(派生类 / 子类)继承另一个类(基类 / 父类)的属性和方法。

1.访问控制

派生类通过 class Derived : public Base 语法继承基类

  • public 继承:基类的 public/protected 成员在派生类中保持原有访问级别。
  • protected 继承:基类的 public/protected 成员在派生类中变为 protected。
  • private 继承:基类的所有成员在派生类中变为 private。

2.多态

多态允许通过基类指针或引用调用派生类的方法,实现 “一个接口,多种实现”。

1. 关键概念

1.静态多态(编译时多态):通过函数重载和模板实现。
2.动态多态(运行时多态):通过虚函数(virtual)和继承实现。
3.虚函数:在基类中声明为 virtual 的函数,派生类可重写(override)。
4.纯虚函数与抽象类:纯虚函数(virtual void func() = 0)使基类成为抽象类,无法实例化。

2. 动态绑定

发生在以下条件下:
1.通过基类指针或引用调用函数。
2.被调用的函数是虚函数。

对象布局:
1.Shape 对象:包含 vptr → 指向 Shape 的虚函数表。
2.Circle 对象:包含 vptr → 指向 Circle 的虚函数表()。

虚函数表
1.派生类新增的虚函数会被添加到第一个基类的 VTable 中:
2.若Base1和Base2有同名虚函数,Derived需显式指定重写哪个基类的函数:
3.当Derived重写部分基类的虚函数时,VTable 会更新:
4.基类与派生类不共享 VTable:VTable 是类级别的,不同类的 VTable 即使内容相同也不共享。

3. 虚析构函数的必要性

当通过基类指针删除派生类对象时,若基类析构函数不是虚函数,只会调用基类的析构函数,导致派生类资源泄漏。

4.多重继承

多重继承(Multiple Inheritance)是 C++ 允许一个类从多个基类继承属性和方法的特性。它在提供强大表达能力的同时,也带来了菱形继承、命名冲突等复杂性。

1. 菱形继承

当一个派生类通过多条路径继承同一个基类时,会导致基类成员在派生类中重复存在。

1.问题表现

  • 数据冗余:WorkingStudent对象中包含两份Person实例(Worker::Person和Student::Person)。
  • 访问歧义:直接访问age会导致编译错误,需显式指定路径:

2.解决方法
在继承列表中使用virtual关键字修饰基类

3.原理
1.vbptr(虚基类指针)
当类使用虚继承时,其对象内存布局中会包含一个虚基类指针(vbptr),该指针指向一个虚基类表(VBT,Virtual Base Table)。

2.虚基类表(VBT)
是一个存储偏移量的数组,每个元素对应一个虚基类的偏移信息。
VBT 中至少包含两类信息:
当前类到直接虚基类的偏移量
当前类到间接虚基类的偏移量(如菱形继承中的共同基类)

3.偏移量
偏移量可以计算位置。

  1. 初始化责任转移
  • 普通继承:中间层(如B、C)负责初始化其基类(A)。
  • 虚继承:最底层派生类(如D)直接负责初始化虚基类(A)。
  1. 空间开销
  • 每个虚继承的类增加一个vbptr(通常 4/8 字节)。
  • 每个类需要维护虚基类表(VBT)。
  1. 时间开销
  • 普通继承访问:对象地址 + 固定偏移量(一步到位)。
  • 虚继承访问:对象地址 → vbptr → VBT → 偏移量 → 虚基类地址(多步间接访问)。

虚继承下的调用流程 不影响
在虚继承场景中,虚基类的成员可能位于对象的不同位置(通过 vbptr 定位),但虚函数调用仍遵循 VTable 机制:

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

相关文章:

  • 视频网站怎么做服务器百度关键词优化是什么意思
  • 闵行区网站建设公司搜搜
  • 外贸看的英文网站哔哩哔哩b站在线看免费
  • 个人工作室 网站建设网站源码
  • 金湖县建设工程质量监督网站百度地图网页版进入
  • 破解织梦做的网站运营seo是什么意思
  • 在谷歌上做网站广告要多少钱微信客户管理
  • 网站建设策划案范文西安网站关键词排名
  • 武汉网站公司多少钱做游戏推广一个月能拿多少钱
  • 自己做的网站怎么在百度能搜到腾讯云域名
  • 做移动网站优化软谷歌推广平台
  • 免费做店招哪个网站好爱站数据官网
  • 网站开发技术对比免费关键词优化排名软件
  • 自己做网站打开很卡官方网站怎么注册
  • dreamweaver做网站教学百度云客服人工电话
  • 佳木斯建设工程交易中心网站小红书seo优化
  • 哪个网站专做滨水景观百度知道
  • ac68u做网站谷歌app下载 安卓
  • 淮安那家公司做网站长沙哪家网络公司做网站好
  • 自己做的网站如何发布大数据精准营销系统
  • 网站渗透测试怎么做广告投放网站平台
  • 做直播 网站的上市公司免费浏览网站推广
  • 外链查询网站网络推广的优化服务
  • 帝国网站地图插件今日头条新闻最新
  • 企业网站建设合同上海互联网公司排名
  • 批量发布wordpress文章外贸网站优化推广
  • 48互联网站建设网络口碑营销的成功案例
  • 网站设计模板html昆明自动seo
  • 贵州省建设厅官方网站考证什么叫seo优化
  • 无锡网站制作工具做推广的都是怎么推