IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> C++知识库 -> C++ Primer 第十三章---练习题(学习笔记) -> 正文阅读

[C++知识库]C++ Primer 第十三章---练习题(学习笔记)

13.1? 拷贝构造函数是什么?什么时候使用它?

? 符合 “ 第一个参数是自身类类型的引用,且任何额外参数都有默认值 ” 的 构造函数 是拷贝构造函数。

当:

? 1.将一个对象作为实参传递给一个非引用类型形参 (调用实参作为非&参数)

? 2.从一个返回类型为非引用类型函数返回一个对象 (f(x)返回非&类型)

? 3.用花括号列表初始化一个数组中的元素或者一个聚合类中的成员 (列表初始化一个array或者聚合类成员)

13.2? 解释为什么下面的声明是非法的:

Sales_data::Sales_data(Sales_data rhs);

? 拷贝构造函数的第一个参数应该是自身类类型的引用,如果不是,则调用永远不可能成功——为了调用拷贝构造函数,我们必须拷贝它的实参,但为了拷贝实参,我们又需要调用拷贝构造函数,如此无限循环。

13.3? 当我们拷贝一个StrBlob时,会发生什么?拷贝一个StrBlobPtr呢?

? StrBlob中元素复制,且智能指针计数加一。StrBlobStr中元素复制,弱指针复制不影响计数器

13.4? 假定Point是一个类类型,他有一个Public的拷贝构造函数,指出下面程序片段中哪些地方使用了拷贝构造函数:

Point global;
Point foo_bar(Point arg)
{
    Point local = arg,*heap = new Point(global);
    *heap = local;
    Point pa[4] = (local,*heap);
    return *heap;
}

foo_bar 的参数不是引用类型,需拷贝;使用拷贝构造函数,函数返回类型非引用,需拷贝;将arg拷贝到local、将global拷贝到heap,将local和*heap拷贝pa[4],需拷贝;local拷贝到*heap属于拷贝赋值运算符

13.5? 给定下面的类框架,编写一个拷贝构造函数,拷贝所有成员。你的构造函数应该动态分配一个新的string(参见12.1.2节,第407页),并将对象拷贝到ps指向的位置,而不是拷贝ps本身:

class HasPtr{
public:
    HasPtr(const std::string &s = std::string()):
        ps(new std::string(s)),i(0) {}
private:
    std::string:: *ps;
    int i;
}
HasPtr(const Hasptr& HP):*ps(new string *HP.ps),i(HP.i){}

  C++知识库 最新文章
【C++】友元、嵌套类、异常、RTTI、类型转换
通讯录的思路与实现(C语言)
C++PrimerPlus 第七章 函数-C++的编程模块(
Problem C: 算法9-9~9-12:平衡二叉树的基本
MSVC C++ UTF-8编程
C++进阶 多态原理
简单string类c++实现
我的年度总结
【C语言】以深厚地基筑伟岸高楼-基础篇(六
c语言常见错误合集
上一篇文章      下一篇文章      查看所有文章
加:2021-09-27 13:54:18  更:2021-09-27 13:56:43 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年12日历 -2024/12/29 4:18:27-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码
数据统计