如何检查它是一个类的哪个衍生物,以及如何在列表中使用它们的结构
How can I check which derivate is it of one class and how can I work with their structure in a list
我有以下问题,希望伟大的社区可以帮助我。如果我有一个班级:
class one
{
private:
int data;
public:
one();
void safe();
void load();
};
然后是第一类的 2 个导数类:
class two: public one
{
private:
int data2;
public:
two();
safe();
load();
};
class three: public one
{
private:
int data3;
string data4;
public:
three();
void safe();
void load();
};
现在我必须在这些类中存储数据。类的对象存储在列表中。在此示例中,这些列表的一个元素可以是类二或类三的一个对象。现在,如果我必须将列表的内容保存在文件中,我需要获取data2
的数据,或者如果我有另一个对象,我需要data3
和data4
。
如何检查它是哪个派生的,以及如何获取对象的数据?我的意思是,这必须是可能的,因为它们都是一个的衍生物。
如果您需要列表:
std::list<one*> myList;
如果您需要像数组这样的集合
std::vector<one*> myVec;
您可以在此处查看有关如何从列表std::list
中获取和处理数据的更多详细信息:http://www.cplusplus.com/reference/list/list/
对于std::vector<>
这里:http://www.cplusplus.com/reference/vector/vector/
对于你的第二个问题:
如何检查它是哪个派生的,以及如何获取 对象?
由于您已经创建了继承并将对象作为指针保留在容器中,如std::list
或std::vector
,系统可以使用多态性识别对象的动态类型,并根据对象的类型调用函数。更多详情请点击此处:http://www.cplusplus.com/doc/tutorial/polymorphism/
相关文章:
- 没有为自己的结构调用列表推回方法
- 访问类lintalizer列表中的结构元素
- 将大括号括起来的初始值设定项列表作为结构返回
- 为什么这个 std::queue/指向结构的指针列表直到 List.Size() == 0 才释放内存?
- C++-将具有引用的长参数列表重构为结构
- 在C++中循环访问自定义结构列表的小问题
- 访问列表向量中的结构
- c ++数据输入并读回列表中的结构结构中的数组
- 如何在结构初始值设定项列表中实例化类
- 结构数组的构造函数错误,错误消息:没有构造函数实例与参数列表匹配
- 使用初始化列表填充C++中的多维结构数组时出现问题
- 使用列表进行动态结构分配
- 如何从结构列表中筛选信息
- 当接收到不明确的规范时,表示图的邻接列表的数据结构
- 用于筛子的最佳数据结构是什么(即一些被划掉的数字列表)?
- C/C++intellisense 0.26.1不显示结构成员列表
- C++使用旧编译器GCC 4.4.0在结构列表中查找字符串
- 列表结构和数组的奇怪问题
- 释放包含STL类的链接列表结构的内存
- c++游戏的列表结构