我在写一个持有指向同一类型父对象的指针的类(想想Qt的QObject系统)。每个对象都有一个父对象,并且当孩子被摧毁时(显然)不应该销毁父对象。亲子计划
class MyClass
{
public:
MyClass(const MyClass* ptr_parent): parent(parent){};
~MyClass(){ delete[] a_children; };
private:
const MyClass* ptr_parent; // go to MyClass above
MyClass* a_children; // go to MyClass below
size_t sz_numChildren; // for iterating over a_children
}
(请原谅我联编码,这只是为了简洁)
会破坏“主MyClass的”采取一切照顾孩子?没有孩子应该能够杀死它的父母,因为我会在我的主程序中使用指针来销毁对象,对吗?
你为什么要问?我需要一种方法来“遍历”所有子目录,并在独立于平台的级别上查找所有文件。这棵树的创建将由本地API处理,其余的不会。这是一个好主意吗?
谢谢!
+1用'vector'替换动态儿童数组。 – Brian 2010-05-18 16:50:34
这个矢量超出了我的想法,但似乎并不合逻辑,因为许多MyClass对象将有一个空的子列表(这些将类似于树中的文件)。但它是一个向量:)。 父母的通知也是一个好主意,没有想到通过:s 所以:矢量+亲子知识它是。谢谢! – rubenvb 2010-05-18 17:08:54