VC驿站

 找回密码
 加入驿站

QQ登录

只需一步,快速开始

搜索
查看: 176|回复: 2

关于父类对象和子类对象相互转换问题

[复制链接]
76_avatar_middle
最佳答案
0 
在线会员 发表于 2020-6-10 10:38:53 | 显示全部楼层 |阅读模式
本帖最后由 赵国梁 于 2020-6-10 10:45 编辑

void average_age(CStudent* p_arr_stud, int n_size)
{
if (!p_arr_stud || n_size <= 0) return;

int total_age = 0;
EStudentType type = p_arr_stud[0].type;
for (int idx = 0; idx < n_size; ++idx)
{
switch (type)
{
case EStudentType_Xiao:
total_age += ((CXiaoStudent*)p_arr_stud)[idx].age;
break;
case EStudentType_Zhong:
total_age += ((CZhongStudent*)p_arr_stud)[idx].age;
break;
default:
break;
}
}

&#160; &#160; int aver_age = total_age / n_size;
&#160; &#160; switch (type)
&#160; &#160; {
&#160; &#160; case EStudentType_Xiao:
&#160; &#160;&#160; &#160;&#160;&#160;cout << "小学生的平均年龄是:" << aver_age << endl;
&#160; &#160;&#160; &#160;&#160;&#160;break;
&#160; &#160; case EStudentType_Zhong:
&#160; &#160;&#160; &#160;&#160;&#160;cout << "中学生的平均年龄是:" << aver_age << endl;
&#160; &#160;&#160; &#160;&#160;&#160;break;
&#160; &#160; default:
&#160; &#160;&#160; &#160;&#160;&#160;break;
&#160; &#160; }
}




上一篇:一个大二学生的迷茫
下一篇:dllmain创建线程
76_avatar_middle
最佳答案
0 
ico_lz  楼主| 发表于 2020-6-10 10:43:22 | 显示全部楼层

我想问一下 EStudentType type = p_arr_stud[0].type;   这一步用父类指针 取子类的type值   步长不一样   会不会出错   
70_avatar_middle
最佳答案
21 
在线会员 发表于 2020-6-10 13:40:18 | 显示全部楼层
1.讲道理 type 和 age 应该在父类里定义比较好
2.步长不一样 ??? 看不懂
3.建议使用插入代码功能,这排版直接劝退
您需要登录后才可以回帖 登录 | 加入驿站 qq_login

本版积分规则

×【发帖 友情提示】
1、请回复有意义的内容,请勿恶意灌水;
2、纯数字、字母、表情等无意义的内容系统将自动删除;
3、若正常回复后帖子被自动删除,为系统误删的情况,请重新回复其他正常内容或等待管理员审核通过后会自动发布;
4、感谢您对VC驿站一如既往的支持,谢谢合作!

关闭

站长提醒上一条 /2 下一条

QQ|小黑屋|手机版|VC驿站 ( 辽ICP备09019393号 )|网站地图wx_jqr

GMT+8, 2020-10-26 06:04

Powered by CcTry.CoM

© 2009-2020 cctry.com

快速回复 返回顶部 返回列表