我有一个带有"注册"的矢量列表类。
的main.cpp
// main.cpp:
// from namespace::class3
bool successfulregistered = RegisterComponents(vector<CustomNamespace::class1,CustomNamespace::class2>);
class3.h
// in class3
private:
vector<CustomNamespace> Objectinstance;
public:
bool RegisterComponents(vector<CustomNamespace>& RegisterComponents);
class3.cpp
// implementation
bool class3::RegisterComponents(vector<CustomNamespace>& RegisterComponents)
{
for(int i = 0; i < RegisterComponents.end(); i++)
{
class3::Objectinstance->iterator(*RegisterComponents);
// and then some checks
}
}
现在我想收集对类的访问并创建对象实例来调用方法:
void class3::startserver(void)
{
for(auto i = Objectinstance.begin(); i != Objectinstance.end(); i++)
{
/* How can I create the objects from the vector list with
their classes and call the specific constructor? */
/* i == CustomNamespace::class1 */
}
}
class1.h
ConfigWatchdog(string &SetJSONFile, const char &cJSONRoot);
class2.h
ServerNetworking(unit& setIPAddress, ...);
答案 0 :(得分:4)
尽管你的代码给了我一个WTF时刻,我想我可以提供帮助。循环中的i
是一个迭代器:
for(auto i = Objectinstance.begin(); i != Objectinstance.end(); i++)
您可以通过解除引用i
- *i
来访问元素。您可以复制 - 构建另一个Namespace
(将其设为大写N
,namespace
是关键字,您不知道吗?):
Namespace obj1 = *i;
也许只是grab a book。