【发布时间】:2020-03-29 22:55:46
【问题描述】:
我有以下场景:internalEntity 类应该以多种不同的形式存储数据(例如boolCloud、std::vector<TRIANGLE> 等)。创建此对象时,构造函数应该根据参数调用正确的initEntity() 函数。如何在不重载构造函数和函数的情况下做到这一点?
例如执行时
internalEntity myEntity(bCloud, "My bool Cloud");
其中 bCloud 是 boolCloud 我希望调用第一个 initEntity() 函数。
这个例子不起作用,但typename T 部分应该说明我想要做什么。
class internalEntity
{
public:
internalEntity(typename T, std::string name) { initEntity(T, name); };
void initEntity(boolCloud& bCloud, std::string name);
void initEntity(std::vector<TRIANGLE>& triMesh, std::string name);
void initEntity(std::vector<dvec>& pointCloud , std::string name);
void deleteEntity();
//...
};
【问题讨论】:
标签: c++ overloading