子类父类方法问题

zwl327 2010-06-03 10:57:49
先上代码吧

class test
{
public:
virtual void my(){cout << "test"<<endl;};
};

class test1: public test
{
public:
virtual void my(){cout << "test1"<<endl;};
};

class test2: public test
{
public:
virtual void my(){cout << "test2"<<endl;};
};

void my(test t)
{
t.my();
}
void main()
{
test1 t1;
test2 t2;
my(t1);
my(t2);

}

我希望得到的输出是
test1
test2
现在的输出是
test
test
也就是说,我子类转化为父类后仍希望能调子类自己的方法,应该怎么修改?
...全文
80 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
zwl327 2010-06-03
  • 打赏
  • 举报
回复
谢四楼,但我已经结过帖了,给不了分了。还是谢谢
pengzhixi 2010-06-03
  • 打赏
  • 举报
回复
void my(test &t)
zwl327 2010-06-03
  • 打赏
  • 举报
回复
谢谢二楼。成功解决
To一楼,能编译过啊,为什么不能?
hurryboylqs 2010-06-03
  • 打赏
  • 举报
回复

void my(test *t)
{
t->my();
}
void main()
{
test1 t1;
test2 t2;
my(&t1);
my(&t2);

}
ww884203 2010-06-03
  • 打赏
  • 举报
回复
t1.my();
t2.my();
你那样都能通过编译???咋回事?

64,323

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧