我有以下结构
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 中的模式匹配密切相关,但这是我在不知道的情况下可以找到的说明我的问题的最佳方式答案;)
在写作中我希望客户端能够创建一个基础对象并将对象类型作为参数传递,返回对象的正确规范并且客户端不需要关心它,只知道运行渲染将运行正确的特定渲染。
如果我不清楚,请随时提问:)
最佳答案
我认为您需要阅读有关虚函数和继承的内容:
http://www.parashift.com/c++-faq-lite/virtual-functions.html
http://www.parashift.com/c++-faq-lite/proper-inheritance.html
关于c++ - 如何使用虚函数对基类进行抽象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7345309/