社区
C++ 语言
帖子详情
关于类的 笔试题求解。
karlfixed
2009-10-22 06:00:19
class A
{
public:
void fun(){cout<<"aaa"<<endl;};
private:
int a;
};
A *p=NULL;
p->fun(); 为什么会正确输出呢? 加了virtual又不行
...全文
62
6
打赏
收藏
关于类的 笔试题求解。
class A { public: void fun(){cout<<"aaa"<fun(); 为什么会正确输出呢? 加了virtual又不行
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
6 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
Eric不爱
2009-10-22
打赏
举报
回复
5楼正解
karlfixed
2009-10-22
打赏
举报
回复
http://hi.baidu.com/bellgrade/blog/item/a24222f2365617c10a46e091.html
wanjingwei
2009-10-22
打赏
举报
回复
这个帖子讨论的挺精彩
http://topic.csdn.net/t/20060709/14/4869004.html
adventurelw
2009-10-22
打赏
举报
回复
p指向空间是来存储数据的吧,成员函数并不关联数据部分,能够输出很正常。
karlfixed
2009-10-22
打赏
举报
回复
[Quote=引用 1 楼 bichenggui 的回复:]
调用p->func()的时候,p会被隐式转换为(A*).实际上就是一个0到A*的转换。所以p->func()实际上调用的是
A::func(),这是编译器对(A*)0的特殊解析。
如果func是virtual的话,个人认为这个转换得到的是virtual table的指针,但是virtual table此时没有被初始化。
[/Quote] 讲得不是很好,我觉得既然p指向的是没有分配空间的,怎么会输出呢? 还是要看下语法或者编译这方面想想
必成桂
2009-10-22
打赏
举报
回复
调用p->func()的时候,p会被隐式转换为(A*).实际上就是一个0到A*的转换。所以p->func()实际上调用的是
A::func(),这是编译器对(A*)0的特殊解析。
如果func是virtual的话,个人认为这个转换得到的是virtual table的指针,但是virtual table此时没有被初始化。
计算机
笔试题
汇总
计算机笔常见
笔试题
和面试题,希望对大家有帮助
北航2020预推免
笔试题
北航2020预推免
笔试题
,良心价5个币,绝对2020年预推免自动化学院真题,给以后的研究生做一个指导,自动化一定要好好复习,再去面试北航
【光学工程师】
笔试题
.doc
部分内容示例 1.求像A'B' 2.求像A'B' 3.求物AB经理想光学系统后所成的像,并注明系统像方的基点位置和焦距
SHEIN 2022届-后台开发
笔试题
(B卷)
private访问范围,abstract,程序分析,interface,算法时间复杂度,HTTP1.0,json,final, 编程删除链表的中间节点,
中兴公司C++
笔试题
C++
笔试题
C++ 语言
65,186
社区成员
250,526
社区内容
发帖
与我相关
我的任务
C++ 语言
C++ 语言相关问题讨论,技术干货分享,前沿动态等
复制链接
扫一扫
分享
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
请不要发布与C++技术无关的贴子
请不要发布与技术无关的招聘、广告的帖子
请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下
试试用AI创作助手写篇文章吧
+ 用AI写文章