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

// 按照作业中题序,空格序
1)
4
1 // 题目中调用了一次函数,在返回对象的时候从底层栈中将此对象复制构造给主函数中变量后,调用了此对象的析构函数,于是使静态成员被减少一次

2)
// 这道题还是函数调用导致了复制构造函数的调用,在传参和 return 的时候都被调用一次
9
22
5

3)
int n = 0
int& val

4)
// 这里用了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){};
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值