首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

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

2012-05-10 
高手看看问题出在哪里#includeiostream#includestring.husing namespace stdclass mystring{public:m

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

热点排行