1、用一个共有基类统一所有打算放在一起的对象
class base_
{
};
class A:public base_
{
};
class B:...
...
base * pClassArray[256];
2、可以用“联合”来代替
union utagObjCell{
classA * o_a;
classB * o_b;
};
utagObjCell unCell[128];
3、最新的C++规范里(TR1),支持“元胞”,其实就是很像Matlab里的CELL,用法:
// 博注:以前梦寐以求的,既可以存int,又可以存double,还可以存string的数组
// 理解有误阿,感觉tuple和struct差不多, 哎
#include <tuple>
#include <iostream>
#include <utility>
#include <string>
typedef std::tr1::tuple<int, double, std::string> Mytuple;
int main()
{
Mytuple c0(0, 3.1416, "Hello!");
// display contents " 0 1 2 3"
std::cout << " " << std::tr1::get<0>(c0);
std::cout << " " << std::tr1::get<1>(c0);
std::cout << " " << std::tr1::get<2>(c0);
std::cout << std::endl;
// display first element " 0"
std::tr1::tuple_element<2, Mytuple>::type val = std::tr1::get<2>(c0);
std::cout << " " << val;
std::cout << std::endl;
return (0);
}
参考资料:MSDN for VS2008 SP1