C++笔记--类和对象--多态(其三)(一些小见解、一些小拓展)

        • 当父类之下,存在许多不同的子类时,要想实现将不同子类对象储存在同一个数组内,可使用父类指针进行统一,例如   

//父类
class Worker{};

//子类1   
class Boss :public Worker{};

//子类2
class Manager :public Worker{};

//子类3
class Employee :public Worker{};

//欲将子类123对应的对象储存起来以备后用,则可使用父类指针结合二级指针来维护这段内存
Worker* b = new Boss();
Worker* m = new Manager();
Worker* e = new Employee();

Worker** m_array = new Worker[5];

//如果需要扩展这段内存,只需仿照此法,建立一个更大的,在将旧数组赋值到新数组中,在释放旧数组,即可
//此类思想,在向量的扩容、数据结构的动态分配内存中也有所体现————一种动态分配、釜底抽薪的思想
Worker** newArry = new Worker[10];

if(array != nullptr)
{
    for(int i=0 ;i < 10 ;i++)
    {
        newArry[i] = m_arry[i];
    }    
}
//添加子类对象
int n;
cin>>n;
Worker* worker = nullptr;
switch(n)
{
case '1':
    worker = new Boss();
    break;
case '2':
    worker = new Manager();
    break;
case '3':
    worker = new Employee();
    break;
}

newArry[i+1] = worker;

//释放旧数组
delete [] m_arry;

//更改指向
m_arry = newArry;
//m_arry是贯穿整个代码的数组,那怕是扩容了,也应该是延续使用m_arry的数组名
//通常,m_arry是在类中声明的,而newArry只是临时的。
//另外
newArry = nullptr;




        • 储存想要保存但代码需要delete的数据,可使用文件操作,进行文件编写,

参考博客:C++笔记--文件操作-CSDN博客

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值