#include
#include
using namespace std;
class tree
{
public:
tree(int n,const char *p,double s)
{
name=new char[10];
name=p;
num=n;
score=s;
cout<<"tree constructor.."<<endl;
}
~tree()
{
delete []name;
cout<<"destructor.."<<endl;
}
tree()
{
}
private:
int num;
const char *name;
double score;
};
int main()
{
tree pomegranate(5,"guava",59);
//tree guava(pomegranate);
return 0;
}
你这个程序是程序退出析构导致的错误。
既然用new了,就要用strcpy才行,而且要去掉const
#include<iostream>
#include<cstring>
using namespace std;
class tree
{
public:
tree(int n,const char *p,double s)
{
name=new char[10];
strcpy(name, p);
num=n;
score=s;
cout<<"tree constructor.."<<endl;
}
~tree()
{
delete []name;
cout<<"destructor.."<<endl;
}
tree()
{
}
private:
int num;
char *name;
double score;
};
int main()
{
tree pomegranate(5,"guava",59);
//tree guava(pomegranate);
return 0;
}