高手看看问题出在哪里
#include"iostream"
#include"string.h"
using namespace std;
class mystring
{
public:
mystring(int i);
mystring(char *m);
mystring(mystring &b);
char *a;
void display()
{cout<<a;}
};
mystring::mystring(int i)
{
cout<<'<';
for (int j=0;j<i;j++)
cout<<' ';
cout<<'>'<<'\n';
}
mystring::mystring(char *m)
{
strcpy(a,m);
}
mystring::mystring(mystring &b)
{
a=new char[strlen(mystring::a)+1];
strcpy(a,mystring::a);
}
int main()
{
mystring s1 ("sdfgfdgdf"), s2(5), s3;
s1.display();
s2.display();
s3.display();
s3 = s1;
s3.display();
return 0;
}
[解决办法]
还要定义个默认构造函数:
mystring(){};
[解决办法]
class mystring{public: mystring(){ a = NULL; } mystring(int i); mystring(char *m); mystring(mystring &b); void display() { if(a) cout<<a; }private: char *a;};mystring::mystring(int i){ cout<<'<'; for (int j=0;j<i;j++) cout<<' '; cout<<'>'<<'\n'; a = NULL;}mystring::mystring(char *m){ a=new char[strlen(m)+1]; strcpy(a,m);}mystring::mystring(mystring &b){ a=new char[strlen(mystring::a)+1]; strcpy(a,mystring::a);}int main(){ mystring s1("sdfgfdgdf"), s2(5), s3; s1.display(); s2.display(); s3.display(); s3 = s1; s3.display(); return 0;}