C++ C++;初始化成员数组

C++ C++;初始化成员数组,c++,arrays,private,member,initialization-list,C++,Arrays,Private,Member,Initialization List,我正在尝试创建一个带有私有成员数组的类(foo)。该类将用作另一个类(foo2)的私有成员,该类的构造函数将初始化该数组 例h: class foo{ private: int* ary; public: foo(int*); ~foo(); } 示例.cpp: foo::foo(int* b){ ary = b; } 使用示例h class foo2{ private: foo my_foo; public: foo2(); ~foo2(); } 使用

我正在尝试创建一个带有私有成员数组的类(foo)。该类将用作另一个类(foo2)的私有成员,该类的构造函数将初始化该数组

例h:

class foo{
private:
    int* ary;
public:
    foo(int*);
    ~foo();
}
示例.cpp:

foo::foo(int* b){
ary = b;
}
使用示例h

class foo2{
private:
  foo my_foo;
public:
  foo2();
  ~foo2();
}
使用example.cpp

foo2::foo2() : myfoo({2,3}){}

我是C++中的NOOB,我意识到我所要求的可能并不十分清楚,换句话说,我需要FoO2,有一个成员FO,数组将被设置为[2,3]。

<查看:


不能使用{…}语法初始化动态数组;您需要手动填充。

这不是数组,而是指向整数的指针(我知道您可以对它们进行几乎相同的处理)。当你使用STL类时,为什么你会用C++中的指针做一些恐怖的事情?你知道没有检查的
{2,3}
的范围吗?但是,代码< MyFoo>还是代码>仍然指向它?数组不是指针,指针不是数组,C++中的标准动态数组是“代码> STD::vector < /代码>。你应该用这个。如果你不能,你需要复习你的课程材料(或者你正在学习的任何东西),弄清楚你在这里应该做什么=>
int-ary[2]
标准::数组元。然后它将是一个数组,而不是一个未初始化的指针。我需要的是创建一个动态数组,它将通过使用foo2获得其大小。例如,可以有另一个类foo3,其各自的“myfoo”的初始化为“myfoo({2,3,4,5,6,7})”等等。不,我不能使用向量…谢谢你的回答,我认为这是可能的,因为我相信这样做是在指定一些东西,比如初始化一个整数时,没有意识到数组在那之后仍然是动态的。