鱼C论坛

 找回密码
 立即注册
查看: 699|回复: 10

[已解决]说出以下程序的输出结果并说明理由

[复制链接]
发表于 2020-7-18 15:27:44 | 显示全部楼层 |阅读模式
10鱼币
#include <iostream>
using namespace std;

class A
{
public:
        int data;
        void func() {}
};

class B
{
public:
        int data;
        virtual void func() {}
};

int main()
{
        cout << sizeof(A) << endl;
        cout << sizeof(B) << endl;

        return 0;
}
快而准确地回答答案的将获得10鱼币~
最佳答案
2020-7-18 15:27:45
vptr指针,指向虚函数表

最佳答案

查看完整内容

vptr指针,指向虚函数表
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-7-18 15:27:45 | 显示全部楼层    本楼为最佳答案   
vptr指针,指向虚函数表
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2020-7-19 09:50:06 | 显示全部楼层
没人要这10鱼币吗?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-7-19 11:35:29 | 显示全部楼层
c++ 不知道
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-7-19 12:55:24 | 显示全部楼层
跟32和64位编译器、字节对齐有关
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-7-19 15:32:20 | 显示全部楼层
本帖最后由 xiaosi4081 于 2020-7-19 15:50 编辑
#include <iostream>
using namespace std;

class A
{
public:
        int data;
        void func() {}
};

class B
{
public:
        int data;
        virtual void func() {}
};

int main()
{
        cout << sizeof(A) << endl; //输出4,因为一个是int,一个是空函数
        cout << sizeof(B) << endl;//输出12,因为B有虚函数

        return 0;
}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-7-19 15:47:29 | 显示全部楼层

第一个是4只有一个整形需要分配空间,第二个有一个整形和一个指针,指针在32位是4个字节,在64位是8个字节,8个字节出现字节对齐,4+4+8输出16
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-7-19 15:48:50 | 显示全部楼层

运行的答案不会是你注释的
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2020-7-19 18:09:23 | 显示全部楼层

请详细说明一下,为什么有虚函数就会多一个指针?
或者说,这个指针是指向什么的?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2020-7-19 18:10:05 | 显示全部楼层
baige 发表于 2020-7-19 12:55
跟32和64位编译器、字节对齐有关

是32位编译器
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2020-7-19 18:10:48 | 显示全部楼层
baige 发表于 2020-7-19 15:47
第一个是4只有一个整形需要分配空间,第二个有一个整形和一个指针,指针在32位是4个字节,在64位是8个字 ...

请详细说明一下,这个指针是指向什么的?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-6-16 15:45

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表