c++ - 如何在 C++ 的一个项目中访问所有具有相同类型/类的对象?

标签 c++ class for-loop types foreach

<分区>

我想调用项目中存在的所有对象。我该怎么做?

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/

相关文章:

C++ 通过引用传递和通过值函数传递副作用?

python - 在Python中,为什么 "object"类全部是小写而不是第一个字母大写?

wordpress 将字段添加到 post_class

javascript - 连续循环数组以创建水平滚动条

for-loop - 暂停for循环的执行

python - 我无法在 for 循环中增加列表中的特定值

C++,自由存储与堆

c++ - 是什么导致了这个 QT 4.7.3 错误?

来自 C++ 的 C# USB 驱动程序

python - 如何在线程中通过变量调用方法?