您的位置:首页 > 其它

留下一个下疑问

2013-11-01 21:03 211 查看
一、在调用缺省的拷贝构造函数时,对于字符串拷贝有错误。

示例:

#include<iostream>
#include<cstring>

using namespace std;

const int N=10;

class Stu
{
    private:
    char name
;
    int score;
    char stu_no
;
    public:
    Stu(char name1[],int s,char stu_no1[]);
    void show();
    ~Stu();
};

Stu::Stu(char name1[],int s,char stu_no1[])
{
    strcpy(name,name1);
    score=s;
    strcpy(stu_no,stu_no1);
}

Stu::~Stu()
{
    cout<<"d......"<<endl;
}

void Stu::show()
{
    cout<<name<<' '<<score<<' '<<stu_no<<endl;
}

int main()
{
    Stu s1("Mr.zhang",100,"1206655023");
    s1.show();
    Stu s2(s1);
    s2.show();
    Stu s3=s2;
    s3.show();
    return 0;
}


二、但是,换成string类型, 就无压力了。

示例:

#include<iostream>
#include<cstring>
#include<string>

using namespace std;

const int N=10;

class Stu
{
    private:
    string name;
    int score;
    string stu_no;
    public:
    Stu(string name1,int s,string stu_no1);
    void show();
    ~Stu();
};

Stu::Stu(string name1,int s,string stu_no1)
{
    name=name1;
    score=s;
    stu_no=stu_no1;
}

Stu::~Stu()
{
    cout<<"d......"<<endl;
}

void Stu::show()
{
    cout<<name<<' '<<score<<' '<<stu_no<<endl;
}

int main()
{
    Stu s1("Mr.zhang",100,"1206655023");
    s1.show();
    Stu s2(s1);
    s2.show();
    Stu s3=s2;
    s3.show();
    return 0;
}


有待解决。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: