社区
C++ 语言
帖子详情
问下关于类的东西
s8232642
2011-03-14 02:23:43
1. 一个空类占几个字节?为什么
2. 一个类里面只有一个成员函数,占几个字节?为什么
3. 一个类里面只有一个虚函数,占几个字节?为什么?
4. 为什么基类析构函数一般都是虚函数?
...全文
77
7
打赏
收藏
问下关于类的东西
1. 一个空类占几个字节?为什么 2. 一个类里面只有一个成员函数,占几个字节?为什么 3. 一个类里面只有一个虚函数,占几个字节?为什么? 4. 为什么基类析构函数一般都是虚函数?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
7 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
LinuxBirdMan
2011-03-14
打赏
举报
回复
[Quote=引用 3 楼 pathuang68 的回复:]
引用 1 楼 linuxbirdman 的回复:
1)如果没虚函数则1字节,有则4字节。。。class B;b[10];这样能区分每个元素
2)1字节
3) 4字节
4)便于继承的时候,基类对象的析构
个人觉得第4个回答,有点问题。
比如有两个类base(基类)和derived(派生类),如果base中的析构函数非虚,那么
C/C++ code
base *b = ……
[/Quote]
没表达清楚。。就是你这个意思。。
辛鹤
2011-03-14
打赏
举报
回复
1)如果没虚函数则1字节,有则4字节。。。class B;b[10];这样能区分每个元素
2)1字节
3) 4字节
4)便于继承的时候,基类对象的析构
quwei197874
2011-03-14
打赏
举报
回复
如果想详细了解请看<inside c++对象模型>这本书,哈哈,书名可能有点出入.
pathuang68
2011-03-14
打赏
举报
回复
请参考:
虚析构函数问题:为什么要将基类的的析构函数设成虚的?
pathuang68
2011-03-14
打赏
举报
回复
[Quote=引用 1 楼 linuxbirdman 的回复:]
1)如果没虚函数则1字节,有则4字节。。。class B;b[10];这样能区分每个元素
2)1字节
3) 4字节
4)便于继承的时候,基类对象的析构
[/Quote]
个人觉得第4个回答,有点问题。
比如有两个类base(基类)和derived(派生类),如果base中的析构函数非虚,那么
base *b = new derived;
delete b;
derived的析构函数将不会被调用,从而发生内存泄露。
因此,基类的析构函数设为虚函数,是为了在上面的情况下(这样的情况比比皆是)能够正确地调用派生类的析构函数。
恨天低
2011-03-14
打赏
举报
回复
第四个问题,你可以看看《effective C++》条款14: 确定基类有虚析构函数
附《effective C++》下载地址:
http://download.csdn.net/source/2990015
LinuxBirdMan
2011-03-14
打赏
举报
回复
1)如果没虚函数则1字节,有则4字节。。。class B;b[10];这样能区分每个元素
2)1字节
3) 4字节
4)便于继承的时候,基类对象的析构
区块链之Go语言设计模式
追MM少不了请吃饭了,麦当劳的ji翅和肯德基的ji翅都是MM爱吃的
东西
,虽然口味有所不同,但不管你带MM去麦当劳或肯德基,只管向服务员说“来四个ji翅”就行了。麦当劳和肯德基就是生产ji翅的Factory。 ...
JAVA
类
的定义
public class Student{ //
类
里边要定义的
东西
-->属性和方法。//1 以前 写方法的时候会有一个 static 这个不是方法的要求。(就像去面试首先要问你都会什么------>也就是你都具备哪些方法。// 从现在开始写方法不需要...
为什么要用抽象
类
问你个问题,你知道什么是“
东西
”吗?什么是“物体”吗? “麻烦你,小王。帮我把那个
东西
拿过来好吗” 在生活中,你肯定用过这个词--
东西
。 小王:“你要让我帮你拿那个水杯吗?” 你要的是水杯
类
的...
php最基础的
东西
,面试必备
昨天去笔试一家企业的招聘,本以为别人会问你很高深很难的
东西
,谁知道试卷上的题目不是关于Redis的使用,也不是负载均衡中怎么处理,更不是数据库优化。都是我们认为很"基本",很简单得不能再简单的题目。但是我错了...
Java 抽象
类
、普通
类
、接口的区别——值得你一看的干货
且不说会有很多人合作一起写一个程序,哪怕还是你一个人写,也保不住...所以,在高级语言上,一个
类
只能继承一个
类
或抽象
类
,正如人不可能同时是动物
类
又是植物
类
,但是可以实现多个接口,例如,吃饭接口、呼吸接口等。
C++ 语言
64,637
社区成员
250,559
社区内容
发帖
与我相关
我的任务
C++ 语言
C++ 语言相关问题讨论,技术干货分享,前沿动态等
复制链接
扫一扫
分享
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
请不要发布与C++技术无关的贴子
请不要发布与技术无关的招聘、广告的帖子
请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下
试试用AI创作助手写篇文章吧
+ 用AI写文章