我们说我有一些课
class A {
...
};
将一些变量和方法封装在里面。我的问题是,如果课程可以学习"新方法 - 一些函数将新方法放在类体中。
例如,我有一个空类
class Draw {};
我的程序中的一些函数从文件中读取数据并基于它可以绘制圆形,方形等。是否可以将这些绘制方法放在Draw类体内以使其动态增长?
答案 0 :(得分:2)
是强>
class Draw
{
public:
ReturnType call(const std::string& methodName, ArgTypes args)
{
return methods[methodName](this, args);
}
private:
std::unordered_map<
std::string,
std::function<ReturnType(Draw*, ArgTypes)>
> methods;
};
根据需要添加到methods
。
(我已经抽象出ReturnType
和ArgTypes
;在那里挑选你需要的东西。)
答案 1 :(得分:0)
简单回答&#34;我的问题是,如果班级可以学习&#34;新方法 - 一些功能是将新方法放入类体中#34;不是