如何自定義一個C++列表容器,以便它可以保存不同類型的結構?如何定製一個C++列表容器,以便它可以容納不同類型的結構體?
例如
struct A
{
int a;
int b;
}
struct B
{
float a;
float b;
}
#include <list>
using namespace std;
int main()
{
...
...
A a;
a.a = 1;
a.b = 2;
B b;
b.a = 123.444;
b.b = 11.222;
List.push_back(a);
List.push_back(b);
return 0;
}
何必呢?用一些常規方法制作父類,從中提取數據,並從中繼承2個類,每個類都有自己的私有數據。並使用父類作爲列表的類型。 – user3152069
要麼存儲指向基類的指針,要麼使用元組,要麼重新考慮設計。 – user2672165
@prgbenz你通常不會把東西放在一個不能被相同訪問的容器中。使用具有虛函數的公共基類等。如果從'list'中彈出一個項目,編譯器如何在運行時知道結構是「A」還是「B」? – Jeff