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

最赞回答 / 猫毛儒丶
因为很多时候只有在程序运行过程中才能确定某一数据的具体类型,从而采用对应的行为举个例子,在交互界面中,计算两个数据的和,用户输入的是int,则调用+,如果是字符串,则调用stringcat()之类

最新回答 / 猫毛儒丶
指针 pp不是在堆中建立的,就是一个简单的定义+初始化, 不需要主动delete
virtual void reload()
{
cout << "Gun -- reload" << endl; }
};
void hunting(CanShut *s)
{
s->aim();
s->reload();
}
int main(void)
{
Gun *g = new Gun;
hunting(g);
delete g ;
g = NULL;
return 0;
}
int main(void)
{
// 通过父类对象实例化狗类
Animal *animal = new Dog();
// 调用成员函数
animal -> eat();
animal -> move();
// 释放内存
delete animal;
animal = NULL;
return 0;
}
给自己加油,到结尾的时候再打卡

最新回答 / 慕的地8223948
加了virtual就会产生虚函数列表占用内存空间,所以要看情况

最赞回答 / WORLD_CONNECTED
(Shape *) p  p是一个指针,标示p将指向一个Shape * 类型的值。new Circle(3, 5, 4.0);  //在堆内存创建一个Circle对象,返回一个内存地址【也就是指针】p = new Circle(3, 5, 4.0);//这个地址赋值给p。【内存地址就像 0f23aff7这个一样。】【这个地址里面存着这个对象】回答你的问题:(1)Shape *shape1 = new Circle(3, 5, 4.0);//在堆内存创建一个Circle对象,返回一个内存地址【也就是指针】,...
回复:帅踢锅{
给大家出个题啊,下面代码的输出结果为什么?

int m = 1, n = 2, *p = &m;

cout << ++*q << *++q << endl;
}
q没有定义,编译报错,什么都不打印【手动滑稽】
不是没有输出Animal 就是没执行,只是由于没有在初始化列表里给Animal的构造函数传递name参数,所以执行了Animal的默认构造函数,所以没输出Animal。

已采纳回答 / 慕神5287259
 因为有了#include "Plane.h"  而plane.h又包含了 Flyable.h,所有不用在写#include "Flyable.h"
CanShut 不是Canshut
必须在使用 typeid 前包含头文件 <typeinfo> (若不包含该头文件,则关键词 typeid 的每次使用都令程序为病态。)

typeid 表达式为左值表达式,表示一个拥有静态存储期的,多态类型 const std::type_info 或从它导出的某些类型的对象。
---引用 http://zh.cppreference.com/w/cpp/language/typeid
头文件没有写#include<typeinfo>,仍然正确运行的
等灯~等灯~等灯~等灯~等灯~等灯~等灯~等灯~等灯~等灯~等灯~

最赞回答 / 遥远的遥
具体什么呢?你可以先刷新下再编译上传下(先把自己写的程序保存好)我平时自己写的时候都是先在IDE上运行,运行好的没有毛病再复制到网站,这样效率高点。若果还不行,你尝试用“同学的代码”全部复制过去,看看行不行,最后判断问题所在。希望对你有帮助。
must #include<typeinfo>
课程须知
本课程是C++初级课程 1、熟练掌握C++语言基础语法
老师告诉你能学到什么?
1、虚函数、虚析构函数、纯虚函数 2、抽象类和接口类 3、运行时类别异常 4、异常处理

微信扫码,参与3人拼团

微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号

友情提示:

您好,此课程属于迁移课程,您已购买该课程,无需重复购买,感谢您对慕课网的支持!

本次提问将花费2个积分

你的积分不足,无法发表

为什么扣积分?

本次提问将花费2个积分

继续发表请点击 "确定"

为什么扣积分?

举报

0/150
提交
取消