本来想在c++容器里面存放不同的结构体,但是没有实现,最后通过子类父类的互相转换实现。
只要将建立一个基类的容器就可以直接push子类,这样就实现了一个可以用插入不同数据结构的容器。
1、将不同的结构体写成同一个基类派生的子类,在子类中添加自己希望的数据类型。
Test.h
class Father
{
public:
std::string flag = "I am Father";
};
class ChildOne :public Father
{
public:
std::string c1_flag = "I am ChildOne";
int c1_data = 999;
};
class ChildTwo :public Father
{
public:
std::string c2_flag = "I am ChildTwo";
std::string c2_data = "ChildTwo Data";
};
2、将子类实例化并push到vector(其他容器也可以)
Father * father = new Father();
cout << "father:" << father->flag << endl;
ChildOne *c1 = new ChildOne();
cout << "childone:" << c1->flag << endl;
ChildTwo *c2 = new ChildTwo();
cout <