<分区>
我想调用项目中存在的所有对象。我该怎么做?
Class1 Abc;
Class1 Xyz;
Class1 asd[100];
for each (Class1 k in ???)
{
k.dosomething();
}
<分区>
我想调用项目中存在的所有对象。我该怎么做?
Class1 Abc;
Class1 Xyz;
Class1 asd[100];
for each (Class1 k in ???)
{
k.dosomething();
}
最佳答案
C++ 没有“项目”的概念,因此对于如何在项目中给定类的所有对象上调用方法,没有正式的正确答案。
可能您的意思是在“程序”中。
一种方法是在此类对象指针的全局集合中注册指向每个对象的指针。这样做的一个主要问题是,理想情况下必须由构造函数来完成注册工作,而构造函数不知道此对象是否会以 const
结束。因此,您可能会无意中在 const
对象上调用修饰符方法。
一个(有限的)解决方案是在可行时将 do_something
作为 const
方法。
另一个(通用但更复杂的)解决方案是将该类的对象的创建限制为工厂函数,因为工厂函数可以在成功构造后变为 const
后注册对象。
关于c++ - 如何在 C++ 的一个项目中访问所有具有相同类型/类的对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33429792/