创建从提供的类型继承的类的对象我有以下类由不同的对象
class CommonStyle
{};
class Style1 : public CommonStyle
{};
class Style2 : public CommonStyle
{};
class Style3 : public CommonStyle
{};
template<typename T> class ZStyle : public T
{
};
我有对象可以是STYLE1,蓝紫魅力,节日礼物的类型。 如何根据提供的对象创建从Style1或Style2或Style3继承的ZStyle的对象?
//pseudo-code
int _tmain(int argc, _TCHAR* argv[])
{
CommonStyle* obj1 = new Style1();
CommonStyle* obj2 = new Style2();
CommonStyle* obj3 = new Style3();
ZStyle* zobj1 = create_object_inherited_from_style1(obj1);
ZStyle* zobj2 = create_object_inherited_from_style2(obj2);
ZStyle* zobj3 = create_object_inherited_from_style3(obj3);
}
是否可以避免dynamic_cast?
你不能写`ZStyle * zobj1`,你必须拼出来类型:`ZStyle * zobj1`。 –
kennytm
2011-12-16 15:52:36
这个架构的实际目标是什么是非常不清楚的。你能详细说明吗? – 2011-12-16 15:53:43