- 11
- 0
- 约1.3万字
- 约 51页
- 2018-03-04 发布于浙江
- 举报
[计算机软件及应用]第8章第二部分类与对象
Account::Account(Account a) // 拷贝构造函数 { name = new char[strlen(a.getName())+1]; // 申请内存空间,地址返回给name strcpy(name,a.getName()); // 复制name acctNumber=a.getNumber(); // 复制acctNumber coutCopy constructor calledendl; } Account::~Account() { coutDestructor called name endl; delete [] name; } void main() { Account a1(Alice,15); Account a2(a1); couta1.getName()endl; couta2.getName()endl; a2.setName(Jerry); couta1.getName()endl; couta2.getName()endl; } 运行结果为: Constructing account Alice Copy constructor called Alice Alice Alice Jerry Destructor called Jerry Destructor called Alice 从这次的运行结果可以看出,改变a2中的name不再影响a1中的name,程序结束前分别释放a2和a1中name所指向的内存也不再出现错误,程序实现了“深拷贝”,过程如图8-2所示。 后改为Jerry 图8-2 深拷贝内存示意图 (a)拷贝前 (b)拷贝后 调用拷贝构造函数有两种方法: class Account{…….}; void main() { Account a1(Alice,15); Account a2(a1); couta2.getName()endl; } class Sample{………}; void main() { Sample s1(100); Sample s2=s1; couts2.getX(); } 这里隐含着使用了第二种方法调用拷贝构造函数: class Vector{………..}; Vector Multiply(Matrix m, Vector v) void main { Vector va =Multiply(mt,vt); ……… 8.4 静态成员 声明为static的类成员称之为静态成员,可以被类的所有对象所共享。类的静态成员包括静态数据成员和静态成员函数。 8.4.1 静态数据成员的需要性 在一个类类型下可以定义若干个对象,其中,每一个对象都有该类所有数据成员的一份单独拷贝,相互之间互不干扰。然而,在某些情况下,某些特殊类型的所有对象都需要共享同一份特定数据成员的一份拷贝。 例如,我们要用一个链表来存储一个班级的所有学生。这时候需要一个指针指向链表的头以及一个变量来记录链表中的节点数。于是我们定义Student类为: class Student { // … private: Student *phead; // 链表头指针 int count; // 学生数 }; 在这种情况下,提供一个所有对象共同使用的全局变量显然比每个类对象维持一个独立的数据成员更为有效。 class Student { // … }; // 类定义结束 Student *phead; // 链表头指针 int count=0; // 学生数 void main() { Student stu; // 建立第一个学生对象 count++;
您可能关注的文档
- [计算机软件及应用]第10章JDBC与数据库访问.ppt
- [计算机软件及应用]第10章指针_2007.ppt
- [计算机软件及应用]第10章 模式识别的理论与方法第10-4讲.ppt
- [计算机软件及应用]第10讲包装类、时间、字符串.ppt
- [计算机软件及应用]第11章 课程设计指导书.ppt
- [计算机软件及应用]第11章 Android NDK开发.ppt
- [计算机软件及应用]第11章 Windows风格的界面设计.ppt
- [计算机软件及应用]第10章面向对象分析.ppt
- [计算机软件及应用]第11章习题解答.ppt
- [计算机软件及应用]第11章:图形设计.ppt
- 2025年全国演出经纪人员资格认定考试试卷带答案(研优卷).docx
- 2025年全国演出经纪人员资格认定考试试卷完整版.docx
- 2025年全国演出经纪人员资格认定考试试题库及完整答案.docx
- 2025年全国演出经纪人员资格认定考试试卷完美版.docx
- 2025年全国演出经纪人员资格认定考试试卷含答案(实用).docx
- 2025年全国演出经纪人员资格认定考试试卷及答案(各地真题).docx
- 2025年下半年内江市部分事业单位公开考试招聘工作人员(240人)备考题库附答案.docx
- 2025年全国演出经纪人员资格认定考试试卷及答案1套.docx
- 2025年下半年四川成都市郫都区面向社会引进公共类事业单位人员2人备考题库最新.docx
- 2025年下半年内江市部分事业单位公开考试招聘工作人员(240人)备考题库附答案.docx
原创力文档

文档评论(0)