首页
新闻
论坛
群组
Blog
文档
下载
读书
Tag
网摘
搜索
.NET
Java
游戏
视频
人才
外包
培训
数据库
书店
程序员
欢迎您:
游客
| 退出
| 登录
注册
帮助
我的帖子
我参与的帖子
我的空间
我的网摘
CSDN
CSDN社区
.NET技术
VC.NET
将帖子提前
放进我的网摘
推荐给好友
我要提问
帖子加分
生成帖子
置顶
推荐(加精)
取消推荐(加精)
锁定帖子
移动帖子
取消引用
结贴去...
管理菜单
页面风格切换
标准风格
老版本论坛
大家帮忙~~
[已结贴,结贴人:wzlsy]
加为好友
发送私信
在线聊天
wzlsy
等级:
可用分等级:
贫农
总技术专家分:
55
总技术专家分排名:
119481
揭帖率:
40.00%
发表于:
2008-05-16 09:55:04
楼主
#include <iostream>
using namespace std;
class A
{
public:
A();
virtual void Classprint();
};
A::A()
{
this->Classprint();
}
void A::Classprint()
{
cout < < "my A" < < endl;
}
class B:public A
{
public:
B();
void Classprint();
};
B::B()
{
}
void B::Classprint()
{
cout < < "my B" < < endl;
}
B b;
int main()
{
return 0;
}
结果输出 "my A"
请问 在构造B类的时候 在A类的构造函数里的this指向的是B的对象 根据多态性的原理 应该输出"my B"啊 为什么输出的是 "my A"? 谢谢~
问题点数:
10
回复次数:
4
显示所有回复
显示星级回复
显示楼主回复
修改
删除
举报
引用
回复
加为好友
发送私信
在线聊天
wzlsy
等级:
可用分等级:
贫农
总技术专家分:
55
总技术专家分排名:
119481
发表于:
2008-05-16 10:21:36
1
楼 得分:
0
没人帮我啊...........
修改
删除
举报
引用
回复
加为好友
发送私信
在线聊天
hanggen
某人
等级:
可用分等级:
长工
总技术专家分:
19
总技术专家分排名:
187019
发表于:
2008-05-21 01:54:10
2
楼 得分:
0
构造函数没有对象的传递,只是函数的调用并没有传递对象的指针。
如果存在了对象的地址或指针的传递才可能调用。
以下应该可以输出"my A" 和"my B"
void f(A a)
{
a.classprint();
}
int main()
{
B b;
f(b);
return 0;
}
修改
删除
举报
引用
回复
加为好友
发送私信
在线聊天
hdt
倦怠
等级:
可用分等级:
掌柜
总技术专家分:
97280
总技术专家分排名:
51
发表于:
2008-05-21 08:16:14
3
楼 得分:
10
当然是A
因为那个时候B并没有构造好
他的虚函数表还是A的
修改
删除
举报
引用
回复
加为好友
发送私信
在线聊天
ws_hgo
等级:
可用分等级:
富农
总技术专家分:
1934
总技术专家分排名:
10923
发表于:
2008-05-21 14:30:27
4
楼 得分:
0
学习
修改
删除
举报
引用
回复
将帖子提前
放进我的网摘
推荐给好友
我要提问
帖子加分
结贴去...
管理菜单
页面风格切换
标准风格
老版本论坛
网站简介
-
广告服务
-
网站地图
-
帮助
-
联系方式
-
诚聘英才
-
English
-
问题报告
北京创新乐知广告有限公司 版权所有 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
abc推荐给好友