我正在使用visual studio,使用此代码,它会给我一个“断言失败”消息。
我有类(C),其中有一个整数指针,有常规的set和print方法,
这是我的代码:
class C
{
int* p;
public:
void print();
void set_value(int);
int get_value();
C(); // default cinstructor
C(int); //constructor with parameters (overloading constructor)
~C();
};
int C::get_value() {
return *p;
}
void test(C ob1) {
ob1.print();
}
C::~C()
{
cout<<p<<" has been destroyed \n";
if (p!=0)
delete p;
}
C::C()
{
p=0;
}
C::C(int x)
{
p=new int;
*p=x;
}
void C::print()
{
if (p!=0)
cout<<"p = "<<p<<"\t"
<<"*p = "<<*p<<endl;
else
cout<<"Empty pointer"<<endl;
}
void C::set_value(int x)
{
if (p==0)
p = new int;
*p=x;
}
void main()
{
C x,y(20);
test(y);
}
任何人都可以帮忙吗?提前谢谢。