96SEO 2026-02-23 11:32 2
虽然它们各自的特性不同能不能使用也另说但是在建立类对象的时候系统都会申请相应的内存也就是说无论它们能不能用它们都存在。

基类的公有和保护变为派生类的私有可以在派生里边直接用但不能在主函数里边用就和派生类原有的私有数据成员同样的特性。
基类的私有在派生类里边存在但不可见但是可以和上面的方法一样用函数间接使用。
保护数据成员是专门为基类和派生类之间的层次关系准备的对外界来说它和私有数据成员没什么区别。
在基类与派生类之间调用保护类数据成员时保护类数据成员和公有数据成员用法无异但在主函数里保护类数据成员不可见而公有类数据成员可见二者有异。
记住共享,无论是基类还是派生类只要它们的数据成员的名字相同它们的数据成员的大小的改变就是同时的数据是共享的尽管不是同一个类里面的数据成员
}//静态成员函数的功能主要是改变静态数据成员的大小static
5;//私有继承i变成了类D的私有数据成员Add();//D的成员函数B::i;//改变的是类B的公有数据成员参考数据成员变量B::Add();//B的成员函数}
y;x.Add();//x.i1;x.out();//y.f();//y.i6;y.B::i8//访问静态数据成员的两种不同的方式cout
endl;//用类对象访问静态数据成员//8//9//coutstatic
iy.iendl;//错误i是类D的私有数据成员在主函数里边不可访问
基类的构造函数和析构函数不能被派生类所继承派生类需要定义自己的构造函数和析构函数
由于在继承的过程中基类的构造函数不会被继承所以为了初始化基类的数据C提供了一种机制可以通过在派生类对象初始化的时候利用初始化式调用基类的构造函数来进行对基类数据的初始化。
对于基类和派生类构造函数的执行顺序不依照初始化式来进行而是依靠继承路径来执行。
people(p),student(p,q),teacher(p,r){
课本上主要举了圆柱体圆点之间的继承关系还顺便把继承关系和包含关系比较了一把。
下面就通过一个例题看吧
d):Base2(b),Base1(c),b2(a),b1(d)
就可以接着按照初始化的顺序来依次构造这里其实这两个成员用的就是包含的形式
一个类可以从多个基类里边派生出来即一个类有多个直接基类例如一个物品具有多种特征称为多继承。
像上面的例题讲的一样的问题就是由于这个派生类同时由许多基类产生换句话说这个小孩有许多直接遗产需要继承。
然后就需要构造构造的顺序是先基类(同时有很多基类的话就按照基类继承的顺序依次进行)然后派生类的数据成员这儿有点道道。
。
。
见下方代码最后是派生类本身有时候要要注意虚继承的构造函数的结果
b1(d)//前两个基类的构造顺序是看public继承时候的特性由于上面写的是先继承Base1,后继承Base2所以结果是先构造Base1,再构造Base2;紧接着是派生类的两个类类型的数据成员由于这两个类数据成员在private里的顺序,也就是作为该派生类数据成员的顺序是先Base2,再Base1,因此先构造b1,再构造b2,也就是先Base2,再Base1{cout
一个类不能被多次说明为一个派生类的直接基类但可以不止一次地成为间接基类。
针对D继承B1,B2同时B1B2又分别继承自B由于是非虚继承就导致在D类对象中会有两个继承B类的成员副本静态成员函数就只有一个成员副本因为它的共享特性B是D的非虚基类。
而我们的本意是希望在派生类D的对象中只有一个B的成员副本因为毕竟就只想继承一次间接基类B的成员副本但是由于继承顺序的关系先B1再B先B2再B这样就会执行两次间接基类B的构造函数。
比如在我们想调用B类的成员函数时若D
aa.getdata();由于有B1从B类中继承过来的成员函数——getdata()也有B2从B类中继承过来的成员函数——getdata()直接像上面这样调用的话会产生二义性因此我们需要加上作用域。
转下文
为了不两次调用非虚基类的构造函数为了避免访问时产生的二义性可以用作用域进行显示转换但是很麻烦所以就直接使用虚继承。
只对基类对象的数据初始化一次就要把B1和B2对B的继承说明为虚继承在继承路径的时候在类继承的关键字之前加上virtual。
因此一个类在类体系中可以作为虚基类或非虚基类这取决于派生类对它的继承方式而与基类本身的定义方式无关。
因此为了建立唯一的间接基类版本应该声明派生类为虚继承基类而不是声明间接基类为虚基类。
因为如果直接声明间接基类为虚基类也就是直接定义的话这样根本就不知道到底是你哪个派生类什么样的继承方式究竟是怎样的对于消除二义性没有什么意思。
在多继承情况下虚基类关键字的作用范围和继承方式关键字相同只对紧随其后的基类起作用需要注意的是在第一级继承时就要将共同基类设置为虚基类。
3下方这两处的virtual也就只能减少一次在基类构造的次数对于派生类的类数据成员构造的时候并不会减少间接基类的构造。
作为专业的SEO优化服务提供商,我们致力于通过科学、系统的搜索引擎优化策略,帮助企业在百度、Google等搜索引擎中获得更高的排名和流量。我们的服务涵盖网站结构优化、内容优化、技术SEO和链接建设等多个维度。
| 服务项目 | 基础套餐 | 标准套餐 | 高级定制 |
|---|---|---|---|
| 关键词优化数量 | 10-20个核心词 | 30-50个核心词+长尾词 | 80-150个全方位覆盖 |
| 内容优化 | 基础页面优化 | 全站内容优化+每月5篇原创 | 个性化内容策略+每月15篇原创 |
| 技术SEO | 基本技术检查 | 全面技术优化+移动适配 | 深度技术重构+性能优化 |
| 外链建设 | 每月5-10条 | 每月20-30条高质量外链 | 每月50+条多渠道外链 |
| 数据报告 | 月度基础报告 | 双周详细报告+分析 | 每周深度报告+策略调整 |
| 效果保障 | 3-6个月见效 | 2-4个月见效 | 1-3个月快速见效 |
我们的SEO优化服务遵循科学严谨的流程,确保每一步都基于数据分析和行业最佳实践:
全面检测网站技术问题、内容质量、竞争对手情况,制定个性化优化方案。
基于用户搜索意图和商业目标,制定全面的关键词矩阵和布局策略。
解决网站技术问题,优化网站结构,提升页面速度和移动端体验。
创作高质量原创内容,优化现有页面,建立内容更新机制。
获取高质量外部链接,建立品牌在线影响力,提升网站权威度。
持续监控排名、流量和转化数据,根据效果调整优化策略。
基于我们服务的客户数据统计,平均优化效果如下:
我们坚信,真正的SEO优化不仅仅是追求排名,而是通过提供优质内容、优化用户体验、建立网站权威,最终实现可持续的业务增长。我们的目标是与客户建立长期合作关系,共同成长。
Demand feedback