【发布时间】:2011-09-08 08:37:36
【问题描述】:
我有以下结构
class Base
{
public:
Base(Type);
virtual render
}
class A
{
public:
Base(Type == A);
void render()
}
class B
{
public:
Base(Type == B);
void render()
}
void client_function()
{
Base baseObject(A);
//Base is an instance of class A
baseObject.render()//runs class A render
}
据我所知,上述代码中有些东西不是 c++,它们与 Haskell 中的模式匹配密切相关,但这是我能找到的最好的方式来说明我的问题,而无需知道答案;)
在写作中我希望客户端能够创建一个基础对象并将对象的类型作为参数传递,返回对象的正确规范并且客户端不需要关心它,只知道运行渲染将运行正确的特定渲染。
如果我不清楚,请随时提出问题:)
【问题讨论】:
-
您可能想从一本基本的 C++ 书籍或教程开始,似乎您缺少一些基本的继承概念和所有其他面向对象的概念。如果您想要的东西不属于该类别,您可能正在查看 CRTP(静态多态性),但在没有更深入了解确切问题的情况下决定其中一个是不可能的。
标签: c++ inheritance virtual-functions