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