0
HelloI在編譯我的程序時遇到了問題。 爲什麼intArray指針在同一個對象的構造函數和成員函數display()中給出不同的地址?謝謝!構造函數和成員函數中的指針返回不同的地址
#include<iostream>
using namespace std;
class MyClass
{ private:
int* intArray;
int arraySize;
public:
MyClass(int*,int);
~MyClass()
{delete []intArray;};
void display();
};
MyClass::MyClass(int intData[],int arrSize)
{ int *intArray = new int[arrSize];
cout<<intArray<<" "<<endl;
};
void MyClass::display()
{ cout<<intArray<<" "<<endl;
}
int main()
{ int Data[10]={9,8,7,6,5,4,3,2,1,0};
MyClass obj1(Data,10);
obj1.display();
}
因爲它們是2個不同的變量?您在MyClass的構造中聲明瞭一個新的intArray – danielfranca
這裏您聲明瞭一個新的變量 int * intArray = new int [arrSize]; 使用與您的成員變量相同的名稱 您應該寫 intArray = new int [arrSize]; – nobs
問題已解決。感謝您的幫助。 – Roaid