HELP' 2019-03-13 22:35 采纳率: 100%
浏览 355
已采纳

小白请问一下,程序最后输出的结果dx为什么是abcdef 30和dy=abcdefxyz 50?

#include
#include
using namespace std;

class cd

{

char *a;int b;

_ public:_

void init(char * aa,int bb)

{
a=new char[strlen(aa)+1];
strcpy(a,aa);
b=bb;
}

char *geta()
    {return a;}
int getb()
    {return b;}
void output(){cout<<a<<' '<<b<<endl;}

};

int main()

{

cd dx,dy;
char a[20];
dx.init("abcdef",30);
strcpy(a,dx.geta());
strcat(a,"xyz");
dy.init(a,dx.getb()+20);
dx.output();
dy.output();
return 0;

}

  • 写回答

1条回答 默认 最新

  • slevenxulianjie 2019-03-14 08:05
    关注
        dx.init("abcdef", 30); // dx={ a = "abcdef" b = 30 }
        strcpy(a, dx.geta());  // 拷贝字符串,结果 a="abcdef" 
        strcat(a, "xyz");      // 拼接字符串 a="abcdefxyz" 
        dy.init(a, dx.getb() + 20); //初始化 dy={a="abcdefxyz" b=50}
        dx.output();                //得到最终结果
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?