C++ 类中指针访问的私有数组的声明和内存分配

C++ 类中指针访问的私有数组的声明和内存分配,c++,arrays,pointers,runtime-error,bus-error,C++,Arrays,Pointers,Runtime Error,Bus Error,我需要一些关于指针类内声明的帮助。我正在寻找一种使用C样式数组(不幸的是没有向量)的方法,虽然我使用C++。我不能设法在执行中没有错误,例如“分段错误:11”或“总线错误:10”。目的是提供一种方法来包含对类中人员的10个引用 这些指针在.h文件中的声明方式如下: private: string * name; string * surname; int * index1; int * index2; 在.cc文件的ctor中,我使用了不同的方式分配内存,例如: string * name =

我需要一些关于指针类内声明的帮助。我正在寻找一种使用C样式数组(不幸的是没有向量)的方法,虽然我使用C++。我不能设法在执行中没有错误,例如“分段错误:11”或“总线错误:10”。目的是提供一种方法来包含对类中人员的10个引用

这些指针在.h文件中的声明方式如下:

private:
string * name;
string * surname;
int * index1;
int * index2;
在.cc文件的ctor中,我使用了不同的方式分配内存,例如:

string * name = new string[10];
string * surname = new string[10];
int * index1 = new int[10];
int * index2 = new int[10];
但我得到了运行时错误,可能是因为它实际上没有访问私有变量,或者它超出了内存(“分段错误”)。 如果我不写上面的行,执行时输出是“总线错误”。 我不会在编译中出错,只会在执行过程中出错。 我无法更改.h文件中的私有变量类型,它也不允许我在类中使用new,因为它是C++11的扩展


非常感谢您提供的任何帮助

我认为您应该使用std::vector,因为初学者几乎没有理由使用new/delete

在您的情况下,专用部分可以更改为:

private:
std::vector<string> name;
std::vector<string> surname;
std::vector<int> index1;
std::vector<int> index2;

我认为应该使用std::vector,因为初学者几乎没有理由使用new/delete

在您的情况下,专用部分可以更改为:

private:
std::vector<string> name;
std::vector<string> surname;
std::vector<int> index1;
std::vector<int> index2;

这些是局部变量,正在隐藏对象实例成员。类型(
string*
等…)不应该出现在实际的c-tor中(而且可以说,您应该首先使用
std::vector
s)。在您的c-tor中,贴花应该像
name=new string[10]
一样。谢谢您的快速回复,但我也尝试过这种方法,它返回一个运行时错误。请提供一个,目前为止,很少有帮助。这些是局部变量,并且隐藏了对象实例成员。类型(
string*
等…)不应该出现在实际的c-tor中(而且可以说,您应该首先使用
std::vector
s)。在您的c-tor中,贴花应该像
name=new string[10]
一样。谢谢您的快速回复,但我也尝试过这样做,它返回一个运行时错误。请提供一个,目前为止,几乎没有什么帮助。请使用一个成员初始值设定项列表,让一个空构造函数bodyOP实际上显式地说“无向量”@Passenger OP似乎是个新手,在我看来,给他们提供一个比new/Delete更好的选择似乎更好。即使是这样,基于
向量的答案应该是直接答案的补充,但更好的是,使用成员初始值设定项列表,让空构造函数bodyOP实际上明确表示“无向量”@Passerway OP似乎是一个新手,在我看来,给他们一个比new/Delete更好的选择似乎更好,即使是这样,基于
向量的回答应该是对直接回答的补充