第十二章 复习题
来源:互联网 发布:修改数据库字段长度 编辑:程序博客网 时间:2024/05/22 05:14
1.
类成员str是一个指针,因此构造函数必须提供内存来存储字符串。否则str只保存了地址,而没有在堆中指向的内存创建足够的内存并创建字符副本
2. 必须在析构函数中使用delete来在对象使用结束时释放初始化时创建的内存
应该定义复制构造函数
应该定义赋值函数
3. 默认构造函数,如果没有定义构造函数
默认析构函数;复制构造函数;赋值运算符;地址运算符-返回调用对象的地址。
编译器会生成这些函数的定义,默认构造函数和默认析构函数都是空函数,不做任何操作。复制构造函数逐个复制非静态成员,复制的是成员的值,也称为浅复制
赋值运算符函数先使用复制构造函数创建一个临时对象,然后通过赋值将临时对象的值复制到新对象中,也是浅复制
4.
nifty::nifty( )
{
personality = new char [1];
personality[0] = '\0';
talents = 0;
}
nifty::nifty(char *s)
{
personality = new char [strlen(s)+1];
strcpy(personality, s);
talents = 0;
}
另外至少还得有一个析构函数来delete [] personality;
5. 答案不是很确定,高手请指正
a.
#1 Golfer();
#2 Golfer(const Golfer & g);
#3 Golfer(const char * name, int g = 0);
#4 Golfer();
# 5 默认复制函数
#6 Golfer(const Golfer & g) + 默认赋值运算符函数
#7 默认赋值运算符函数
#8 Golfer(const Golfer & g) +默认赋值运算符函数
应定义复制函数和赋值运算符函数
- 第十二章 复习题
- (一三四)第十二章复习题
- 《C++ Primer Plus(第六版)》(23)(第十二章 类和动态内存分配 复习题和答案)
- 第二章 复习题
- 第三章 复习题
- 13章复习题
- 第四章 复习题
- 第五章 复习题
- 第六章 复习题
- 第七章 复习题
- 第八章 复习题
- 第九章 复习题
- 第十章 复习题
- 第十三章 复习题
- 第十四章 复习题
- 第十五章 复习题
- 第十六章 复习题
- c++第四章复习题
- Mac 下 IDLE Python 打不开来下划线
- zookeeper建立节点的操作
- 填坑——期中考后的续写
- pylint
- JVM内核学习 --内存相关,内存结构, GC,ClassLoader,内存溢出
- 第十二章 复习题
- swift3.0集成友盟分享sdk_6.0.3(一)
- 用FileStream复制一个任意文件
- QT程序自动寻找依赖的DLL(Qt官方开发环境生成的exe发布方式--使用windeployqt)
- qt程序打包(一)
- mysql必知必会 - 什么是数据库、表、模式
- Spring Test 整合 JUnit 4 使用总结
- GPU待解决的问题
- qt程序打包成单一文件EXE (一)