- 1、本文档共164页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
复习--C++中类的声明——Emp类 class Emp // Emp类的声明 { private: //私有成员变量 int nEmpNumber; //雇员工号,整型 char strEmpName[20]; //雇员姓名,字符数组 int nEmpAge; //雇员年龄,整型 public: // 公有成员函数 Emp(); // 默认构造函数 Emp(char *name, int num=0, int age=0);//带参数的构造函数 ~Emp(); // 析构函数 void SetNumber(int num); // 设置工号 void SetName(char* n); // 设置姓名 void SetAge(int age); // 设置年龄 int GetNumber() const; // 查询工号 char* GetName() const; // 查询姓名 int GetAge() const; // 查询年龄 }; 复习--类对象的声明 // 声明类Emp的对象EmpA,调用没有参数的构造函数 Emp EmpA; //声明类Emp对象EmpB,调用有参数的构造函数 Emp EmpB(“Mary”,1001,24); // 声明类Emp指针EmpC,并动态构造实例 Emp *EmpC=new Emp(“John”,1111,30); Emp *EmpD=new Emp; //声明类Emp对象A,调用拷贝构造函数创建对象B Emp A,C; Emp B(A); ? A=C; ? * 拷贝构造函数 拷贝构造函数是在对象被创建时调用的,功能是用一个已知的对象来初始化一个被创建的同类对象。其唯一的参数(对象的引用)是不可变的(const类型). 以下情况都会调用拷贝构造函数:一个对象以值传递的方式传入函数体 一个对象以值传递的方式从函数返回 一个对象需要通过另外一个对象进行初始化 如果在类中没有显式的声明一个拷贝构造函数,那么,编译器会自动生成一个来进行对象之间的拷贝 . 每个类只有一个析构函数和一个赋值函数,但可以有多个构造函数(包括一个拷贝构造函数,其它的称为普通构造函数)。 对于任意一个类A,如果不想编写上述函数,C++编译器将自动为A产生四个缺省的函数: A();//缺省的无参数构造函数 A(const Aa);//缺省的拷贝构造函数 ~A();//缺省的析构函数 A operator=(const Aa);//缺省的赋值函数 class CConAndDecon { private: char m_data; public: CConAndDecon(char value) { m_data = value; cout Object m_data constructor endl;} CConAndDecon(const CConAndDecon other) { m_data = other.m_data - 1 ; cout Object m_data copy constructor endl;} CConAndDecon operator=(const CConAndDecon right) {if( this != right ) { m_data = right.m_data + 1 ; cout Object s new value is m_data endl; } return *this; } ~CConAndDecon() {cout Object m_data destructor endl; }}; void Func(CConAndDecon x); ?int main() { CConAndDecon *p = new CConAndDecon(h); static CConAndDecon c1( k); Func(*p); delete p; return 0; } ? void Func(CConAndDecon x) { static CConAndDecon c1 = x; CConAndDecon c2 = c1; } Object h constructor Object k constructor Object g copy constructor Object f copy constructor Object
文档评论(0)