文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>拷贝构造函数与默认拷贝构造函数

拷贝构造函数与默认拷贝构造函数

时间:2010-10-12  来源:Cranny

#include <iostream>
#include <string.h>
using namespace std;

class Student
{
public:
        Student(char *pName = "no name", int ssId = 0)
        {
                id = ssId;
                strcpy(name,pName);
                cout<<"constructing new student "<<name<<endl;
        }
        Student(Student &s)
        {
                cout<<"constructing copy of "<<s.name<<endl;
                strcpy(name,"copy of ");
                strcat(name,s.name);
                id = s.id;
        }
        ~Student()
        {
                cout<<"Destructing "<<name<<endl;
        }
protected:
        char name[40];
        int id;
};

void fn(Student s)
{
        cout<<"In function fn()\n";
}

class Tutor
{
public:
        Tutor(Student &s):student(s)
        {
                cout<<"Construction tutor"<<endl;
        }
protected:
        Student student;
};

/*
调用默认拷贝构造函数,完成一个成员一个成员的拷贝.
如果成员是类对象,则调用其拷贝构造函数或者默认拷贝构造函数
*/
void fn2(Tutor tutor)
{
        cout<<"In function fn2()"<<endl;
}

void main()
{
        //Student randy("randy",1234);
        //cout<<"Calling fn()"<<endl;
        //fn(randy);
        //cout<<"Returned from fn()"<<endl;

        Student randy("randy",1234);
        Tutor tutor(randy);
        cout<<"Calling fn2()"<<endl;
        fn2(tutor);
        cout<<"Returned from fn2()"<<endl;

}

 

相关阅读 更多 +
排行榜 更多 +
坦克冒险大师安卓版

坦克冒险大师安卓版

策略塔防 下载
自动防御

自动防御

策略塔防 下载
枪战大乱斗2

枪战大乱斗2

飞行射击 下载