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

深圳网站软件开发发布软文的平台

深圳网站软件开发,发布软文的平台,ip网站架设,如何做新网站C 快速回顾(一) 前言一、InLine 内联函数二、类继承的私有保护公开关系PublicProtectedPrivate 三、多继承、菱形继承、虚继承多继承菱形继承 和 虚继承 前言 用于快速回顾之前遗漏或者补充C知识 一、InLine 内联函数 形式如下 需要注意内联函数体需…

C++ 快速回顾(一)

  • 前言
  • 一、InLine 内联函数
  • 二、类继承的私有保护公开关系
    • Public
    • Protected
    • Private
  • 三、多继承、菱形继承、虚继承
    • 多继承
    • 菱形继承 和 虚继承


前言

用于快速回顾之前遗漏或者补充C++知识

一、InLine 内联函数

形式如下
在这里插入图片描述
需要注意内联函数体需要:简单、不能有循环或递归

二、类继承的私有保护公开关系

Public

公开继承基类,和我们正常认知一样

class TestBase
{
private:void FuncPrivate(){}
protected:void FuncProtected(){}
public:void FuncPublic(){}
};class TestChild01 : public TestBase
{void TestFunc() {FuncProtected();FuncPublic();}
};int main()
{TestChild01 test01;test01.FuncPublic();
}

Protected

protected 继承变成了TestChild01 的保护成员

class TestBase
{
private:void FuncPrivate(){}
protected:void FuncProtected(){}
public:void FuncPublic(){}
};class TestChild01 : protected TestBase
{void TestFunc() {FuncProtected();FuncPublic();}
};int main()
{TestChild01 test01;//test01.FuncPublic(); // protected 继承变成了TestChild01 的保护成员
}

Private

看下面的代码是看不出来private继承父类和保护继承有什么区别

class TestBase
{
private:void FuncPrivate(){}
protected:void FuncProtected(){}
public:void FuncPublic(){}
};class TestChild01 : private TestBase
{void TestFunc() {FuncProtected();FuncPublic();}
};int main()
{TestChild01 test01;
}

保护变成了TestChild01 的私有
公共也变成了TestChild01 的私有

class TestBase
{
private:void FuncPrivate(){}
protected:void FuncProtected(){}
public:void FuncPublic(){}
};class TestChild01 : private TestBase
{void TestFunc() {FuncProtected();FuncPublic();}
};class TestChild02 : public TestChild01
{void TestFunc() {//FuncProtected(); // 保护变成了TestChild01 的私有//FuncPublic(); // 公共也变成了TestChild01 的私有}
};int main()
{TestChild01 test01;
}

三、多继承、菱形继承、虚继承

多继承

总结一句话就是当接口去用即可,对具体的功能抽象

菱形继承 和 虚继承

轻易不要去写这种,但是要学会去看

class A
{
public:A(){printf("A Ctor.\r\n");}
};class B : public A
{};class C : public A
{};class D : public B, public C
{};int main()
{D d;system("pause");
}

输出结果如下,由于B、C都继承了A,D继承了B、C导致会触发两次A的构造
在这里插入图片描述
如下代码片段是菱形继承导致不知道调用谁的函数

class A
{
public:A(){printf("A Ctor.\r\n");}void TestFunc() {printf("TestFunc.\r\n");}
};class B : public A
{};class C : public A
{};class D : public B, public C
{};int main()
{D d;//d.TestFunc(); 不清楚要调用谁的  B的?C的?还是A的?system("pause");
}

使用虚继承可以解决上面的问题虚继承导致只有A的一份副本,只调用一次A的构造

class A
{
public:A(){printf("A Ctor.\r\n");}void TestFunc() {printf("TestFunc.\r\n");}
};class B : virtual public A
{};class C : virtual public A
{};class D : public B, public C
{};int main()
{D d;d.TestFunc();system("pause");
}

输出结果:
在这里插入图片描述

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

相关文章:

  • 高陵网站建设百度关键词搜索热度
  • 北京网站制作公司飞沐网络营销的期末试题及答案
  • 响应式网站建设平台短视频seo优化
  • css怎么做响应式网站建站abc
  • 教人做饮料的网站网络公司名字
  • 郑州做网站hnqfu手游推广平台哪个好
  • inurl 网站建设网站seo优化检测
  • 做搜狗网站优化首页软网站关键词快速排名优化
  • 可靠的合肥网站建设百度刷seo关键词排名
  • 东莞英文网站制作企业qq手机版
  • 专门做app网站山西太原百度公司
  • 电子商务网站建设程序应用题无锡营销型网站制作
  • 域名 和网站有什么区别目前最牛的二级分销模式
  • 怎么看网站是否被收录seo网站培训优化怎么做
  • 网络营销网站建设流程公司网络推广服务
  • 动漫制作专业介绍心得体会200字哈尔滨优化调整人员流动管理
  • 北京建设信源资讯有限公司网站网页制作与设计教程
  • 什么是网站解决方案餐饮营销策划方案
  • 建筑挂靠十大网站seo域名如何优化
  • 西班牙语网站建设注意事项游戏推广平台哪个好
  • 柳州洛维建设网站必应搜索引擎国际版
  • 今日域名网站除了百度指数还有哪些指数
  • 以应用为导向的高职高专数学课程改革与建设 教学成果奖申报网站seo链接优化
  • 有个印度做网站的天天找我网络推广产品要给多少钱
  • 深圳网站建设多少钱关键词搜索量全网查询
  • 昆明网站设计价格产品推广策略
  • 网站开发是前端还是做网销的一天都在干嘛
  • 重庆做网站公司有哪些域名历史查询工具
  • 优质网站建设公司哪家好宣城网站seo
  • 钓鱼网站制作方法长沙seo培训