주 파일에서 세 번째로 선언 된 변수에 num을 전달할 때 문제가 발생합니다.배열을 생성자에 전달하면 크기가 1 인 배열이 생성됩니까?
주 파일의 정수 배열을 내 생성자에 전달하면 생성자는 첫 번째 배열 요소에 대한 포인터 만받습니다. 배열의 주소를 생성자에게 전달하여 배열의 모든 부분을 my treeArray 클래스의 멤버 포인터로 복사 할 수 있도록 배열을 전달할 수 있습니까?
treeArray.h
class treeArray
{
private:
int arraySize;
int* arr;
public:
//Constructors
treeArray();
treeArray(int capacity);
treeArray(treeArray& passed); //copy constructor
treeArray(int passed[]);
//Destructor
~treeArray();
//Get Functions
int getArrCap();
//Display functions
bool displayArray();
};
treeArray.cpp :
//copy an array of ints to a treeArray
treeArray::treeArray(int passed[])
{
//get the size of the array passed and assign it to member array size
this->arraySize = sizeof(passed)/sizeof(passed[0]);
this->arr = new int[this->arraySize];
for(int i = 0; i < this->arraySize; i++)
this->arr[i] = passed[i];
}
주 : 여기에서 배열 포인터 붕괴로
int nums[] = {7, 9, 10, 15};
treeArray first;
treeArray second(5);
treeArray third(nums);
treeArray fourth(third);
cout << "Arrays: " << endl << "#1: ";
first.displayArray();
cout << endl << "#2: ";
second.displayArray();
cout << endl << "#3: ";
third.displayArray();
cout << endl << "#4: ";
fourth.displayArray();
cout << endl << endl;
사용해야 크기가합니다. 배열의 첫 번째 요소에 포인터를 전달하고 있습니다. –
어떻게 그 페이지를 찾지 못했습니다! 고마워, 그게 내가 필요한거야. 그리고 나는이 질문을 삭제할 것입니다. Martin Bonner에게 도움을 주셔서 감사합니다! (idk 만약 내가 그것을 삭제하거나 지금 그것에 대해 생각하는 허용) – zicameau
나는 * 당신 * 중복으로 닫을 수 있다고 생각합니다. 중복에 대한 SO 정책은이를 닫지 만 삭제하지 않기 때문에 다른 사람이 더 쉽게 찾을 수 있습니다. –