读书人

高手看看有关问题出在哪里

发布时间: 2012-05-10 16:02:39 作者: rapoo

高手看看问题出在哪里
#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;
}


[解决办法]
还要定义个默认构造函数:

C/C++ code
mystring(){};
[解决办法]
C/C++ code
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;} 

读书人网 >C++

热点推荐