我需要一些指針類內聲明的幫助。我正在尋找一種方式來使用c樣式的數組(所以不幸的是沒有向量),雖然我使用C++。我不能設法執行錯誤,如「分段錯誤:11」或「總線錯誤:10」。目的是要有一種方法來包含對班級中的人的10個引用。指針在類和內存分配中訪問私有數組的聲明
這些指針聲明中這樣.h文件:
private:
string * name;
string * surname;
int * index1;
int * index2;
,並在.cc文件的構造函數我用不同的方式來分配內存,如:
string * name = new string[10];
string * surname = new string[10];
int * index1 = new int[10];
int * index2 = new int[10];
但我得到運行時錯誤,也許是因爲它實際上不訪問私有變量或超過內存(「分段錯誤」)。 如果我不寫上面的代碼,執行時輸出是「總線錯誤」。 我只在執行過程中沒有收到編譯錯誤。 我無法更改.h文件中的私有變量類型,並且它不允許我在類中使用new,因爲它將是C++ 11的擴展。
任何幫助將是非常讚賞
這些都是局部變量,是隱藏在你的對象實例成員。類型('string *'等等)不應該存在於實際的c-tor中(並且無論如何你應該首先使用'std :: vector <>'s)。 – WhozCraig
在您的ctor中,decalration應該像'name = new string [10]'等等.. – sjsam
感謝您的快速回復,但我也試過這種方式,它返回運行時錯誤 – Lorenzo