2 sinat 34810705 sinat_34810705 于 2016.04.27 15:07 提问

如何用数组存放一个基类派生的多种派生类?

我写了一个基类,用其派生了多个派生类,
接着我生成一个基类数组,再在程序里按输入情况对应将每个数组成员变成派生类,
请问这样如何实现?

我试过
p[i]=new student;
但是说i不能是变量

4个回答

clzhou19820922
clzhou19820922   2016.04.27 17:09

vector list

jhfsdfs
jhfsdfs   2016.04.27 15:24

为啥不用list,有封装好的方法

oyljerry
oyljerry   Ds   Rxr 2016.04.27 21:27

用list vector等支持存放指针的数组 然后你存入基类类型指针 用多态方式处理

NK_test
NK_test   Rxr 2016.04.28 00:14

p[i]得是指针数组呦

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
c++ 数组class 派生类继承
这次写代码还是感觉自机不够细心,自己太马虎,虽然不是一名程序员但应该做好自己。 头文件: `#ifndef ARRAY_H_ #define ARRAY_H_ #define MAX_ARRAY 50 // 设置最大数组存取长度 #define len(a) (sizeof(a)/sizeof(a[0])) // 计算数组长度 #include #include // use exit(
派生类构造函数规则
派生类构造函数规则 如果基类拥有构造函数但是没有默认构造函数,那么派生类的构造函数必须显示的调用基类的某个构造函数。   以B类从A类派生为例,我们总结如下: 1、若B有构造函数而A没有,当创建B类的对象时,B的相应构造函数被自动调用。 2、若B没有构造函数而A有,则A必须拥有默认构造函数,只有这样,当创建B类的对象时,才能自动执行A的默认构造函数。 3、若B有构造函数,且A有默认构造
继承与派生:派生类对基类成员的访问控制之公有继承
派生类从基类继承时有三个步骤,第一个步骤是吸收基类成员,吸收了基类中除构造函数和析构函数之外的所有数据成员和函数成员,第二个步骤就是修改基类成员,包括修改对基类成员的访问属性和覆盖基类成员,第三个步骤是添加新成员。第二个步骤中修改对基类成员的访问属性可以通过派生类的继承方式控制。       类的成员有public(公有)、protected(保护)和private(私有)三种访问属性。类的
派生类的三种继承方式小结
公有继承、私有继承、保护继承是常用的3种继承方式。 1.公有继承方式  基类成员对其对象的可见性与一般类及其对象的可见性相同,公有成员可见,其他成员不可见。这里保护成员与私有成员相同。  基类成员对派生类的可见性对派生类来说,基类的公有成员和保护成员可见,基类的公有成员和保护成员作为派生类的成员时,他们都保持原有的状态;基类的私有成员不可见,基类的私有成员仍然是私有的,派生类不可访问基类中的...
【C++】Vector中存储派生类(多个子类继承一个基类)
(一)问题描述 往vector push_back了一个派生类对象,现在如何从这个vector中取出这个派生类对象?并且可以使用派生类中的接口函数? (二)解决方案 1.对象切割(Object slicing) 一般来说,衍生类所占的存储空间一般都比基础类大。当用基础类强制转换派生类物件(对象)指標时就会产生对象切割(Object slicing),即:当把一个派生类对象赋给一个基
C++ 基类、派生类对象指针的声明与使用
1、类指针、对象指针 class x{ //… public: voidshow(); }; main() { x x1,*ptr1;           //定义类x的对象x1和类x的指针ptr1 x x2,*ptr2;           //定义类x的对象x2和类x的指针ptr2 x*ptr3;                 //定义类x的指针ptr3 //… pt
派生类的构造函数和析构函数(C++)
第十五讲:派生类的构造函数和析构函数本讲基本要求    * 理解:派生的构造函和析构函数    重点、难点:有子对象的派生类的构造函数;多重派生时的构造函数。  问题的思路是:在执行派生类的构造函数时,调用基类的构造函数。一、 简单的派生类的构造函数一级派生类中定义构造函数一般形式为:    派生类构造函数名(总参数表列):基类构造函数名(参数表列)    { 派生类中新增
继承 和派生 基类 超类 父类 派生类 子类
面向对象开发 可以用继承/派生机制来实现添加新功能继承(inheritance) 和 派生 (derived)什么是继承/派生:  继承的目的是延续旧的类class 的功能  派生的目的是在旧类的基础上添加新的功能作用:  可以将一些共有功能加在基类中,实现代码共享(代码重用)  在不改变超类的代码的基础上,改变原有的功能继承/派生名词继承:  基类(base class)/超类(super cl...
一般----派生类构造函数的写法
定义派生类构造函数应该包括三部分内容 (1)对基类数据成员进行初始化 (2)对子对象数据成员进行初始化 (3)对派生类数据成员初始化 一般形式为: 派生类构造函数名(总参数表):基类构造函数名(参数表),子对象名(参数表) {       派生类中新增数据成员初始化语句 } 注意:   总参数表中的数据 包括 形参类型和形参变量    而参数表中只有变量名没有变量类型。 例子就
C++基类,派生类,同名覆盖原则
/ 同名覆盖原则.cpp: 主项目文件。   #include "stdafx.h"   #include   #include   using namespace std;   class One   {   private:       string name;       int age;   public:       virtual ~One( )=0{ }