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

网站搭建合同范本8大营销工具指的是哪些

网站搭建合同范本,8大营销工具指的是哪些,接游戏单子代打的平台,网站根据城市做二级目录文章目录 一、继承的二义性1、场景说明 - 继承的二义性2、继承中的二义性报错3、完整代码示例 二、virtual 虚继承1、虚继承引入2、虚继承语法3、代码示例 - 虚继承 一、继承的二义性 1、场景说明 - 继承的二义性 A 类 是 父类 , B 类 和 C 类 继承 A 类 , 是 子类 , D 类 多…

文章目录

  • 一、继承的二义性
    • 1、场景说明 - 继承的二义性
    • 2、继承中的二义性报错
    • 3、完整代码示例
  • 二、virtual 虚继承
    • 1、虚继承引入
    • 2、虚继承语法
    • 3、代码示例 - 虚继承





一、继承的二义性




1、场景说明 - 继承的二义性


A 类 是 父类 ,

B 类 和 C 类 继承 A 类 , 是 子类 ,

D 类 多继承 B 类 和 C 类 , 是 孙子类 ;


在这里插入图片描述

假如 A 类中有 成员变量 x ,

则 子类 B 类 和 C 类 都会继承该 成员变量 x ,

D 类 多继承 B 类 和 C 类 , 会 分别从 B 和 C 各自 继承一个 成员变量 x ;

D 类中 , 从 B , C 两个父类中继承自 爷爷类 A 的成员变量 , 会出现二义性 ;


代码如下 :

#include "iostream"
using namespace std;class A {
public:int x;
};// 子类 B 继承了父类 A 的 x 成员
class B : public A {
public:int y;
};// 子类 C 继承了父类 A 的 x 成员
class C : public A {
public:int z;
};// D 多继承 B 和 C 
// 分别从 B 和 C 各自继承一个来自 A 的成员 x
class D : public B, public C {
public:int k;
};

2、继承中的二义性报错


如果强行使用 对象.x 访问继承自 A , 会报错 error C2385: 对“x”的访问不明确 ;

定义 D 类的对象 d , 如果访问 继承自 A 类的 x 成员 , 则会出现二义性 ;

	// 定义 D 类对象 dD d;// 访问 继承自 A 类的 x 成员出现二义性// 报错 error C2385: 对“x”的访问不明确d.x = 40;

完整报错信息 :

1>------ 已启动生成: 项目: HelloWorld, 配置: Debug Win32 ------
1>Test.cpp
1>Test.cpp(41,6): error C2385: 对“x”的访问不明确
1>Test.cpp(41,6): message : 可能是“x”(位于基“A”中)
1>Test.cpp(41,6): message : 也可能是“x”(位于基“A”中)
1>已完成生成项目“HelloWorld.vcxproj”的操作 - 失败。
========== 生成: 成功 0 个,失败 1 个,最新 0 个,跳过 0==========

3、完整代码示例



代码示例 :

#include "iostream"
using namespace std;class A {
public:int x;
};// 子类 B 继承了父类 A 的 x 成员
class B : public A {
public:int y;
};// 子类 C 继承了父类 A 的 x 成员
class C : public A {
public:int z;
};// D 多继承 B 和 C 
// 分别从 B 和 C 各自继承一个来自 A 的成员 x
class D : public B, public C {
public:int k;
};int main() {// 定义 D 类对象 dD d;// 访问继承自 B 类的 y 成员d.y = 10;// 访问继承自 C 类的 z 成员d.z = 20;// 访问 D 类自己的成员 kd.k = 30;// 访问 继承自 A 类的 x 成员出现二义性// 报错 error C2385: 对“x”的访问不明确//d.x = 40;// 控制台暂停 , 按任意键继续向后执行system("pause");return 0;
}

执行结果 :

在这里插入图片描述





二、virtual 虚继承




1、虚继承引入


在多继承中 , 如果一个类继承了多个含有相同基类的派生类 , 就会产生菱形继承结构 ;

这种情况下 , 可能会出现多个不同的基类实例 , 导致重复定义和二义性 ;

为了应对上述 继承的二义性 问题 ,

C++ 语言 使用 " 虚继承 " 解决 继承中的 二义性问题 ;


C++ 中的 " 虚继承 " 是一种解决 多继承 带来的 菱形问题(diamond problem)的技术 ;

虚继承的目的是 确保每个基类只被继承一次 , 从而避免 重复定义 和 二义性等问题 ;


虚继承 通过在 派生类 中使用关键字 virtual 来指示基类应该被虚继承 , 虚继承确保了每个基类只被继承一次 , 从而避免了重复定义和二义性 ;

在 C++ 中,使用虚继承的语法是在基类列表中使用 virtual 关键字 ;


2、虚继承语法


虚继承语法 : 在 继承的 访问限定符 之前 , 添加 virtual 关键字 , 将该继承行为定义为 " 虚继承 " ;

class 子类类名 : virtual 访问限定符 父类类名
{// 子类内容
}

下面的 B 类 和 C 类 , 就是 虚继承 类 A ;

class A {
public:int x;
};// 子类 B 继承了父类 A 的 x 成员
class B : virtual public A {
public:int y;
};// 子类 C 继承了父类 A 的 x 成员
class C : virtual public A {
public:int z;
};

3、代码示例 - 虚继承


代码示例 :

#include "iostream"
using namespace std;class A {
public:int x;
};// 子类 B 继承了父类 A 的 x 成员
class B : virtual public A {
public:int y;
};// 子类 C 继承了父类 A 的 x 成员
class C : virtual public A {
public:int z;
};// D 多继承 B 和 C 
// 分别从 B 和 C 各自继承一个来自 A 的成员 x
class D : public B, public C {
public:int k;
};int main() {// 定义 D 类对象 dD d;// 访问继承自 B 类的 y 成员d.y = 10;// 访问继承自 C 类的 z 成员d.z = 20;// 访问 D 类自己的成员 kd.k = 30;// 访问 继承自 A 类的 x 成员出现二义性// 报错 error C2385: 对“x”的访问不明确// 使用 virtual 虚继承后 , 不会报错d.x = 40;// 控制台暂停 , 按任意键继续向后执行system("pause");return 0;
}

执行结果 :

在这里插入图片描述

http://www.hengruixuexiao.com/news/24425.html

相关文章:

  • 清廉桂林网站创建网址链接
  • 怎么做网站黑链b2b电商平台
  • 东莞做网站seo长沙seo优化首选
  • 个人租车网站源码免费检测网站seo
  • 网站seo招聘上海网络推广培训学校
  • 做体力活的网站廊坊百度推广seo
  • 圆梦科技专业网站建设推广网站的文案
  • 网页版微信登陆入口深圳宝安seo外包
  • wordpress客户端制作广西seo关键词怎么优化
  • 芜湖网站建设 文库2023疫情第三波爆发时间
  • 主题 外贸网站 模板天津seo方案
  • 湖南常德最新疫情最新消息贵阳seo网站推广
  • 怎么做网站内部搜索功能免费的推广平台
  • 网站首页代码搜易网服务介绍
  • 江西锦宇建设集团有限公司网站全网媒体发布平台
  • 集团网站建设哪家好nba最新交易一览表
  • 长春火车站哪个区免费建站的网站
  • wordpress.shop十堰seo
  • 陕西建设网成绩查询邯郸网站优化
  • csdn搬家到wordpress宁波seo网站服务
  • 网站建设公司好百度应用市场
  • 用java做购物网站海南百度推广运营中心
  • 网站改版新闻稿自己制作一个网页
  • 移动端网站制作的有哪些要求台湾新闻最新消息今天
  • 动态ip做网站影响seo吗如何搭建网站平台
  • 天津开发区建设工程管理中心网站营销做得好的品牌
  • 网站建设洛阳短视频矩阵seo系统源码
  • 群辉服务器做网站微信营销软件手机版
  • 谷歌网站提交入口seo赚钱暴利
  • 俄语网站里做外贸shop上海有哪些优化网站推广公司