一、情景一
-
问:定义一个空的类型,里面没有任何成员变量和成员函数。对该类型求sizeof,得到的结果为1
-
答:为什么是0,而不是1:空类型的实例不包含任何信息,本来求sizeof应该为0,但是当我们声明该类型的实例时,其必须在内存中占用一定的空间,否则无法使用这些实例。置于占用多少内存,由编译器决定。在Visual Studio中,每个空类型的实例占用1字节

-
问:如果在该类型中添加一个构造函数和析构函数,再对该类型求sizeof,得到的结果为多少
-
答:和上面一样,还是1。因为函数不存放于类内,编译器不会为这两个函数的存在而在实例内添加任何额外的信息

-
问:如果把析构函数标记为虚函数哪?
-
答:C++的编译器发现一个类型中有虚函数,就会为该类生成虚函数表,并在该类型的每一个实例中添加一个指向虚函数表的指针。在32位的机器上,一个指针占4字节。如果是64位的机器,则占用8字节

二、情景二
相关文章:
-
2022-12-23
-
2021-09-10
-
2021-12-14
猜你喜欢
-
2021-07-02
-
2021-09-06
-
2021-06-28
-
2021-06-30
-
2022-12-23
-
2021-12-07
-
2021-08-09
相关资源
-
下载
2021-06-05
-
下载
2023-01-03
-
下载
2023-01-13