1,
实例代码:
#include <iostream>
using namespace std;
class Top
{
protected:
int x;
public:
Top(int n)
{
x = n;
}
virtual ~Top() {}
};
class Left : virtual public Top
{
protected:
int y;
public:
Left(int m, int n) : Top(m)
{
y = n;
}
};
class Right : virtual public Top
{
protected:
int z;
public:
Right(int m, int n) : Top(m)
{
z = n;
}
};
class Bottom : public Left, public Right
{
int w;
public:
Bottom(int i, int j, int k, int m) : Top(i), Left(0, j), Right(0, k)
{
w = m;
}
};
int main()
{
Bottom b(1, 2, 3, 4);
cout << sizeof(Top) << endl;
//Top: int+虚表指针 8
cout << sizeof(Left) << endl;
//Left: 大小为Top+int+指向虚基类的指针 16
cout << sizeof(Bottom) << endl;
//Bottom: 大小为Top+Left(int + 指向虚基类的指针)+Right(int + 指向虚基类的指针)+int 28
}
(2)一个比较奇怪的地方
#include <iostream>
using namespace std;
class Top
{
public:
Top()
{
}
virtual ~Top() {}
private:
int i;
};
class Left : virtual public Top
{
public:
Left()
{
}
};
class Right : virtual public Top
{
public:
Right()
{
}
};
class Bottom : public Left, Right
{
};
class Top2
{
public:
Top2()
{
}
virtual ~Top2() {}
};
class Left2 : virtual public Top2
{
public:
Left2()
{
}
};
class Right2 : virtual public Top2
{
public:
Right2()
{
}
};
class Bottom2 : public Left2, Right2
{
};
int main()
{
cout << sizeof(Top) << endl;
cout << sizeof(Left) << endl;
//Left: Top+虚表指针 12
cout << sizeof(Bottom) << endl;
//Left: Top+虚表指针+虚表指针 16
cout << sizeof(Top2) << endl;
cout << sizeof(Left2) << endl;
//Left2: 为什么是4?
cout << sizeof(Bottom2) << endl;
//为什么 是 8?
}
(3) 多重虚继承的情况
#include <iostream>
using namespace std;
class A
{
public:
virtual void aa()
{
}
private:
char k[3];
};
class B : virtual public A
{
public:
virtual void bb()
{
}
private:
char j[3];
};
class C : virtual public B
{
public:
virtual void cc()
{
}
private:
char i[3];
};
class D : public B
{
public:
virtual void cc()
{
}
private:
char i[3];
};
int main()
{
A a;
B b;
C c;
cout<<"sizeof(A):"<<sizeof(A)<<endl;
cout<<"sizeof(B):"<<sizeof(B)<<endl;
//A+4+虚表指针 16
cout<<"sizeof(C):"<<sizeof(C)<<endl;
//B+4+续表指针 24
cout<<"sizeof(D):"<<sizeof(D)<<endl;
//B+4 20
return 0;
}
分享到:
相关推荐
STM32 开发板:选择合适的 STM32 系列开发板,如 STM32F407、STM32F767 等,需具备足够的存储容量(用于存放固件)、网络接口(如以太网接口或可外接 WiFi 模块等实现网络连接)。 网络模块(可选): 如果开发板本身没有集成网络接口,需要外接网络模块。例如,可选用 ESP8266、ESP32 等 WiFi 模块通过 SPI、USART 等接口与 STM32 开发板连接,实现无线连接到网络。 若开发板有以太网接口,如 STM32F407 开发板带有以太网 MAC 控制器,还需外接以太网 PHY 芯片(如 DP83848 等)及相应的网络变压器等元件来实现完整的以太网功能。
全国各省份、各地级市、各区县逐年平均降水数据集提供了从1950年至2022年的详细降水记录。这些数据覆盖了广泛的地理区域,包括不同的气候带和地形,为研究中国各地区的降水模式提供了宝贵资料。该数据集包含了省级、城市级和区县级的降水量,以年为单位,记录了日降水总量的年平均值,单位为米(m)。这些数据对于理解各地区的水资源状况、农业灌溉需求、防洪措施的制定等方面至关重要,并且对地理研究和经济管理研究具有重要的参考价值。数据集包含了省份、城市、区县以及每年的降水量等指标,以面板数据格式呈现,方便进行多维度分析。
【项目资源】:包含前端、后端、移动开发、操作系统、人工智能、物联网、信息化管理、数据库、硬件开发、大数据、课程资源、音视频、网站开发等各种技术项目的源码。包括STM32、ESP8266、PHP、QT、Linux、iOS、C++、Java、python、web、C#、EDA、proteus、RTOS等项目的源码。【项目质量】:所有源码都经过严格测试,可以直接运行。功能在确认正常工作后才上传。【适用人群】:适用于希望学习不同技术领域的小白或进阶学习者。可作为毕设项目、课程设计、大作业、工程实训或初期项目立项。【附加价值】:项目具有较高的学习借鉴价值,也可直接拿来修改复刻。对于有一定基础或热衷于研究的人来说,可以在这些基础代码上进行修改和扩展,实现其他功能。【沟通交流】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。鼓励下载和使用,并欢迎大家互相学习,共同进步。
中国行政村级区划的经纬度数据,更是精准地描绘了每一个村落的地理位置。从北国的雪域高原到南疆的热带雨林,从东部的浩瀚大海到西部的广袤戈壁,每一个村落都以其独特的经纬度坐标,镶嵌在祖国的版图上。 指标 市级、市级代码、县级、县级代码、乡镇级、乡镇级代码、村级、村级代码、城乡分类代码、address、lng_84、lat_84。
全国各省地区犯罪率统计数据集提供了1988年至2020年的详细犯罪率数据,覆盖全国31个省份。这些数据通过刑事案件发生率来衡量社会犯罪率,为研究者提供了一个重要的社会犯罪变量测度。该数据集不仅记录了各省份每年的犯罪率,还包含了从1988年到2020年连续多年的统计数据,为分析犯罪趋势和模式提供了丰富的信息。此外,这些数据被广泛用于研究收入不平等与刑事犯罪之间的关系,以及其他社会经济因素对犯罪率的影响。通过这些数据,研究者可以深入探讨犯罪率与社会经济发展之间的联系,为制定相关政策提供科学依据。
统计学课程设计报告说明.doc
模拟退火算法shell脚本编程实践,分享给有需要的人,仅供参考。内容来源于网络分享,如有侵权请联系我删除。另外如果没有积分的同学需要下载,请私信我。
【项目资源】:包含前端、后端、移动开发、操作系统、人工智能、物联网、信息化管理、数据库、硬件开发、大数据、课程资源、音视频、网站开发等各种技术项目的源码。包括STM32、ESP8266、PHP、QT、Linux、iOS、C++、Java、python、web、C#、EDA、proteus、RTOS等项目的源码。【项目质量】:所有源码都经过严格测试,可以直接运行。功能在确认正常工作后才上传。【适用人群】:适用于希望学习不同技术领域的小白或进阶学习者。可作为毕设项目、课程设计、大作业、工程实训或初期项目立项。【附加价值】:项目具有较高的学习借鉴价值,也可直接拿来修改复刻。对于有一定基础或热衷于研究的人来说,可以在这些基础代码上进行修改和扩展,实现其他功能。【沟通交流】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。鼓励下载和使用,并欢迎大家互相学习,共同进步。
全国高校专利申请量与授权量统计数据集提供了1985年至2020年间中国高校在专利领域的详细统计信息。这些数据不仅记录了高校专利申请和授权的数量,还涵盖了专利的类型,包括发明专利、实用新型专利和外观设计专利。该数据集是衡量高校科技创新成效的重要指标,反映了高校科研成果转化的机制完善程度和科研人员转化积极性。数据内容丰富,包括高校名称、年度、独立及联合申请的各类专利数量,以及授权的专利数量等关键指标。这些统计数据有助于分析和评估高校的创新能力和科技成果转化效率,对于研究高校科技创新政策、管理决策以及发展趋势具有重要价值。
spark中文文档,spark操作手册以及使用规范
yolo系列算法目标检测数据集,包含标签,可以直接训练模型和验证测试,数据集已经划分好,包含数据集配置文件data.yaml,适用yolov5,yolov8,yolov9,yolov7,yolov10,yolo11算法; 包含两种标签格:yolo格式(txt文件)和voc格式(xml文件),分别保存在两个文件夹中; yolo格式:<class> <x_center> <y_center> <width> <height>, 其中: <class> 是目标的类别索引(从0开始)。 <x_center> 和 <y_center> 是目标框中心点的x和y坐标,这些坐标是相对于图像宽度和高度的比例值,范围在0到1之间。 <width> 和 <height> 是目标框的宽度和高度,也是相对于图像宽度和高度的比例值
员工培训授训积分标准表.docx
神经网络项目介绍
【项目资源】:包含前端、后端、移动开发、操作系统、人工智能、物联网、信息化管理、数据库、硬件开发、大数据、课程资源、音视频、网站开发等各种技术项目的源码。包括STM32、ESP8266、PHP、QT、Linux、iOS、C++、Java、python、web、C#、EDA、proteus、RTOS等项目的源码。【项目质量】:所有源码都经过严格测试,可以直接运行。功能在确认正常工作后才上传。【适用人群】:适用于希望学习不同技术领域的小白或进阶学习者。可作为毕设项目、课程设计、大作业、工程实训或初期项目立项。【附加价值】:项目具有较高的学习借鉴价值,也可直接拿来修改复刻。对于有一定基础或热衷于研究的人来说,可以在这些基础代码上进行修改和扩展,实现其他功能。【沟通交流】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。鼓励下载和使用,并欢迎大家互相学习,共同进步。
【项目资源】:包含前端、后端、移动开发、操作系统、人工智能、物联网、信息化管理、数据库、硬件开发、大数据、课程资源、音视频、网站开发等各种技术项目的源码。包括STM32、ESP8266、PHP、QT、Linux、iOS、C++、Java、python、web、C#、EDA、proteus、RTOS等项目的源码。【项目质量】:所有源码都经过严格测试,可以直接运行。功能在确认正常工作后才上传。【适用人群】:适用于希望学习不同技术领域的小白或进阶学习者。可作为毕设项目、课程设计、大作业、工程实训或初期项目立项。【附加价值】:项目具有较高的学习借鉴价值,也可直接拿来修改复刻。对于有一定基础或热衷于研究的人来说,可以在这些基础代码上进行修改和扩展,实现其他功能。【沟通交流】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。鼓励下载和使用,并欢迎大家互相学习,共同进步。
毕业设计心得.txtdfhfn
【项目资源】:包含前端、后端、移动开发、操作系统、人工智能、物联网、信息化管理、数据库、硬件开发、大数据、课程资源、音视频、网站开发等各种技术项目的源码。包括STM32、ESP8266、PHP、QT、Linux、iOS、C++、Java、python、web、C#、EDA、proteus、RTOS等项目的源码。【项目质量】:所有源码都经过严格测试,可以直接运行。功能在确认正常工作后才上传。【适用人群】:适用于希望学习不同技术领域的小白或进阶学习者。可作为毕设项目、课程设计、大作业、工程实训或初期项目立项。【附加价值】:项目具有较高的学习借鉴价值,也可直接拿来修改复刻。对于有一定基础或热衷于研究的人来说,可以在这些基础代码上进行修改和扩展,实现其他功能。【沟通交流】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。鼓励下载和使用,并欢迎大家互相学习,共同进步。
全国各地区(省)人口相关统计面板数据集覆盖了1990至2021年的时间跨度,提供了全国31个省的详细人口统计信息。该数据集包含了常住人口数、年末常住人口、各年龄段人口数、受教育人口数、出生人口数、人口自然增长率、死亡率以及人口性别比例等多项指标。数据内容涉及0-14岁、15-64岁、65岁及以上的人口分布,以及6岁及以上按性别和教育程度划分的人口结构。此外,还包括了15岁及以上未婚人口数、市县总人口数、家庭户和集体户人口数等细分数据。这些数据不仅涵盖了人口的自然增长和减少情况,还包括了人口性别比、农业人口与非农业人口数、城镇与乡村人口比重等重要社会经济指标。通过这些数据,研究人员可以深入分析中国各地区的人口变化趋势,为政策制定和社会科学研究提供有力支持。
降成本工作流程说明表.docx
13