Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/137.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 如何在双指针对象中访问方法_C++_Arrays_Oop_Object_Pointers - Fatal编程技术网

C++ 如何在双指针对象中访问方法

C++ 如何在双指针对象中访问方法,c++,arrays,oop,object,pointers,C++,Arrays,Oop,Object,Pointers,我有简单的示例代码 class Child2{ public: Child2(){ cout<<"this is child2"<<endl; } void test2(){ cout<<"Method Child 2"<<endl; } }; class Child1{ public: Child2 **child2; Child1(){

我有简单的示例代码

class Child2{
    public:
    Child2(){
        cout<<"this is child2"<<endl;
    }

    void test2(){
        cout<<"Method Child 2"<<endl;
    }
};
class Child1{
    public:
    Child2 **child2;
    Child1(){
        child2 = new Child2 *[1];
        child2[0] = new Child2();
        cout<<"this is child1"<<endl;
    }
    void test1(){
        cout<<"Method Child 1"<<endl;
    }
};
class Top{
    public:
    Child1 **child1;

    Top(){
        child1 = new Child1 *[2];
        child1[0] = new Child1();
        child1[1] = new Child1();
        cout<<"this is top"<<endl;
    }
};
但是,如果我想动态地访问该方法,而不需要放置数组的索引,这样就可以访问所有“child2”中的“test2()”,有什么方法吗。我需要保留双指针,因为我想在运行时使用输入分配对象


谢谢

没有任何操作符可以神奇地为数组的所有元素调用该方法

最简单的方法是对数组中的每个项使用循环:

for(int ndx = 0, count = ...; count != ndx; ++ndx)
  child2[ndx]->test();

您也可以使用std::for_,但老实说,对于这种琐碎的情况,我发现显式循环更具可读性,也就是说,我更清楚地知道正在做什么。

或者更好,使用
std::vector
和基于范围的循环(请参阅)。
for(int ndx = 0, count = ...; count != ndx; ++ndx)
  child2[ndx]->test();