PKU-静态成员作业-程设hw03

来源:互联网 发布:windows service pack 编辑:程序博客网 时间:2024/06/05 00:13
// 按照作业中题序,空格序1)41 // 题目中调用了一次函数,在返回对象的时候从底层栈中将此对象复制构造给主函数中变量后,调用了此对象的析构函数,于是使静态成员被减少一次2)// 这道题还是函数调用导致了复制构造函数的调用,在传参和 return 的时候都被调用一次92253)int n = 0int& val4)// 这里用了atof这样的函数,有人说在poj上无法通过,暂时不理会吧。但是有一份标准答案这个地方处理地很懒,// 并且答案里出现了一个if(!t),本意是为了当传入的字符串为空的时候生产一个0+0i,实际上是不可能的。所谓// 传入的字符串为空,便是指调用了 Complex t(""), 这时候t指向的并不是NULL,而是一个开了空间的常指针,// 正确的用法应该是if(!t[0]),如果不知道我在说什么,那是因为你没试图去找标答Complex(const char* str){    char buf[100];    int m = 0, i = 0;    for(i = 0; str[i] != '+'; i++)    {        buf[m++] = str[i];    }    buf[m] = 0;    r = atof(buf);    m = 0;    for(i = i + 1; str[i] != 'i'; i++)    {        buf[m++] = str[i];    }    buf[m] = 0;    i = atof(buf);}5)Sample(Sample& s){    v = s.v + 5;}6)MyString(MyString & str){    p = new char[strlen(str) + 1];    strcpy(p, str);}void Copy(const char * str){    delete p;    p = new char[strlen(str) + 1];    strcpy(p, str);}7)// 此题标准答案有些问题,Base类中缺乏无参的构造函数,但是在Big类中的声明要求调用他,故我加了下面一个东西,// 但考虑这是命题的疏忽,就注了吧// Base(){};Big(int n): v(n), b(n){};Big(Big& x): v(x.v), b(x.b){};