#include<iostream>
#include<string>
#include<fstream>
using namespace std;
class man
{
public:
man()
{
}
man(int age,string na)
{
m_age = age;
name = na;
}
int m_age;
string name ;
};
class Chinese :public man
{
public:
Chinese()
{
}
Chinese(int age, string na)
{
m_age = age;
name = na;
}
int m_age;
string name;
};
int main()
{
man *C = new Chinese(18,"abc");
cout << C->m_age << endl;
cout << C->name << endl;
system("pause");
return 0;
}
父类指针指向子类对象,new出来子类对象似乎被释放了?
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
2条回答 默认 最新
- CSDN专家-link 2021-08-17 10:52关注
为何觉得被释放了呢?
父类已经定义了m_age和name变量,子类没有必要重复定义的
你的问题就在于,子类重新定义了和父类一样的变量,你在构造函数里只对子类的变量进行了赋值,但输出却是父类的变量。
由于父类变量没有赋值,所以会是一个垃圾值
你把子类的m_age和name变量删除,其它都不动,你再试一下本回答被题主选为最佳回答 , 对您是否有帮助呢?解决评论 打赏 举报无用 1
悬赏问题
- ¥15 已知许多点位,想通过高斯分布来随机选择固定数量的点位怎么改
- ¥15 怎么生成确定数目的泊松点过程
- ¥15 layui数据表格多次重载的数据覆盖问题
- ¥15 python点云生成mesh精度不够怎么办
- ¥15 QT C++ 鼠标键盘通信
- ¥15 改进Yolov8时添加的注意力模块在task.py里检测不到
- ¥50 高维数据处理方法求指导
- ¥100 数字取证课程 关于FAT文件系统的操作
- ¥15 如何使用js实现打印时每页设置统一的标题
- ¥15 安装TIA PortalV15.1报错