首页 > 其他分享 >3.29 c提高 6day 继承

3.29 c提高 6day 继承

时间:2023-03-29 22:56:22浏览次数:46  
标签:6day 函数 继承 子类 同名 3.29 父类 public

1.继承中的构造和析构
--执行顺序--
父类构造
子类构造
析构子类
析构父类

2.继承中同名成员的处理
1.当子类和父类有同名成员时,子类的同名成员会隐藏父类的同名成员
class fa
{
public:

int c = 0x11;

private:

};
class son :public fa
{
public:
int c = 0x8;
};
int main()
{
son w;
printf("%x", w.c);
printf("%x", w.fa::c);

}

0x005FFA90 00000011 00000008 对象空间内还是存储这值
1.当子类和父类有同名成员时,子类的同名函数会隐藏父类的同名函数

3.继承中静态成员特性
1.静态成员可以被继承
2.继承中的静态成员变量一样会被同名的子类成员变量隐藏
3.继承中的静态成员函数中,子类和父类有同名静态函数时,父类的所以重载函数被隐藏
4.改变从基类继承过来的静态函数的某个特征,返回值或者参数
5.静态成员函数不能是虚函数

6.菱形继承

虚继承解决菱形继承问题

a
b c -继承 a
d--继承 b c
产生二义性问题
父类虚继承祖类,用virtual关键字
静态联编

早绑定
ff 汇编
1.编译阶段确定了函数地址
动态联编

晚绑定
e8 汇编
也就是 用virtual关键字 使函数成为虚函数

多态
1.同一个函数 因为对象不同执行不同的代码

include

using namespace std;
class a
{
public:
int c = 0;
void virtual testa()
{
printf("a");
}
private:

};
class b :public a
{
public:

void   testa()
{
	printf("b");
}

private:

};
class c :public a
{
public:

void  testa()
{
	printf("c");
}

private:

};
void doa(a* pp)
{
pp->testa();
}
void test()
{
a* gg = NULL;
gg = new b;
gg->testa();

gg = new c;
doa(gg);

}
int main()
{
test();
//printf("%d", son::c);

}

虚函数表

virtual 函数过大生成的一张表

子类 转换父类 向上造型 安全
父类 转 子类 向下 不安全

标签:6day,函数,继承,子类,同名,3.29,父类,public
From: https://www.cnblogs.com/Agtw/p/17270745.html

相关文章

  • 【日总结】2023.3.29
    happyguyround,godround2023省选模拟happyguyroundT1游戏贪心题。首先可以观察到两个性质:\(a_1,a_n\)肯定最后取;若\(a_{i-1}>a_{i}<a_{i+1}\),那么......
  • 3.29软件工程学习总结
    今天继续小组服务外包杯的项目前端页面开发,在页面展示上尝试了很多种方法和形式,页面的连接上出现了一些问题,后续完成了所有页面的制作后再去解决这个问题。下面是今天......
  • 02web服务器3.29
    web服务器技术ASP微软,国内最早出的就是asp在html里嵌入VB的脚本,asp+com;在asp开发中,基本一个页面都有几千行,页面及其混乱。维护成本高c#lls<h1>......
  • 3.29每日总结
    今天学习了mybatis的基本用法,mybatis是方便增删改查编写提供更大便利的方便工具,在今天的学习中成功实现了mybatis的配置和简单实用,对其中的低层代码和用法有了进一步的认......
  • Beyond Compare免费保姆级激活教程(亲测日期:2023.3.29)
    最新,亲测可用(亲测日期:2023.3.29)如果成功使用后,记得回来点个赞哦!BeyondCompare具备的丰富实用功能:1.并列比较文件夹、FTP网站或Zip文件;2.为以后的比较保存快照;3.类似浏......
  • 面向对象和面向过程(封装继承多态)
    面向对象&面向过程面向过程思想步骤清晰,第一步做什么第二步做什么面对过程适合处理一些简单的问题面向对象思想物以类聚,分类的思维模式对于描述复杂的事物,为了从......
  • 每日总结-23.3.29-利于云服务器和javaweb简单实现一个网站
    3月29日总结今日使用云服务器和tomcat实现了简单网站的搭建。使用工具(个人体验,仅作参考,使用其他版本或工具应该也行):1.移动云新人体验免费云服务器一台。(个人专享:通......
  • 操作系统01.3.29
    操作系统概述操作系统的基本概念操作系统(OperationSystem),简称OS,是管理硬件和软件资源的计算机程序。操作系统有很多,比如Windows、Linux、macOS、Unix、andriod、i......
  • 2023.3.29每日总结
    今天学习了运用jsp实现在线的视频播放0.MP4格式主代码:<body><videowidth="320"height="240"controls="controls"><sourcesrc="zp.mp4"type="video/......
  • C#面向对象核心-继承
    继承继承主要实现重用代码,来节省开发时间。1继承基本概念一个类B继承一个类A,被继承的类A称为父类、基类、超类,继承的类B称为子类、派生类。子类会继承父类的所有成......