为了账号安全,请及时绑定邮箱和手机立即绑定

关于函数调用的问题,为什么不能直接传参??

为什么这样写是对的
Shape *S = new Rect(3,5);	Shape *S1 = new Circle(5);	S->calcArea();	S1->calcArea();

这样写就会报错呢
Shape *S = new Rect();	Shape *S1 = new Circle();	S->calcArea(3,5);	S1->calcArea(5);

不是已经通过virtual函数可以调用到子类的成员函数了吗,我直接传参,不用成员变量不可以吗?

https://img1.sycdn.imooc.com//5d4e4d7d0001f9fa03520334.jpg

正在回答

1 回答

如果你想直接传参数的话,那就不要定义基类的指针,把Shape *S = new Rect;改成Rect *s=new Rect

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
C++远征之多态篇
  • 参与学习       66236    人
  • 解答问题       314    个

本教程将带领大家体会面向对象三大特性中的多态特性

进入课程

关于函数调用的问题,为什么不能直接传参??

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信