请教c++中的一个问题,关于类的成员指针
#include<iostream.h>classa{public:a(inti){*x=i;}voidprint(){cout<<x<<endl;}private:in...
#include <iostream.h>
class a
{
public:
a(int i)
{
*x=i;
}
void print()
{
cout << x << endl;
}
private:
int *x;
};
void main()
{
a a1(1);
a1.print();
}
为什么程序运行起来会崩溃呢?难道是因为我没有给指针分配一个地址么?可是如果没有分配地址的话系统应该会自动给指针分配一个栈空间中的地址啊,不明白,请高人指示。 展开
class a
{
public:
a(int i)
{
*x=i;
}
void print()
{
cout << x << endl;
}
private:
int *x;
};
void main()
{
a a1(1);
a1.print();
}
为什么程序运行起来会崩溃呢?难道是因为我没有给指针分配一个地址么?可是如果没有分配地址的话系统应该会自动给指针分配一个栈空间中的地址啊,不明白,请高人指示。 展开
3个回答
展开全部
你输出的是指针,你指针都没有分配空间
#include <iostream.h>
class a
{
public:
a(int i)
{
x = new int;
*x=i;
}
void print()
{
cout << x << endl;
}
~a(){
delete x;
}
private:
int *x;
};
void main()
{
a a1(1);
a1.print();
}
#include <iostream.h>
class a
{
public:
a(int i)
{
x = new int;
*x=i;
}
void print()
{
cout << x << endl;
}
~a(){
delete x;
}
private:
int *x;
};
void main()
{
a a1(1);
a1.print();
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询