- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
除此之外,C++ 入门(第 5 版)中关于动态内存的第 (12) 章在 shared_ptr
上提到了几个构造函数。和 unique_ptr
我在网上找不到。我写这个问题是为了澄清这两个构造函数的存在。如果它们确实存在,下面会询问有关它们的具体问题
shared_ptr<T> p(p2, d)
: p
是 shared_ptr
的拷贝p2
, 除了 p
使用 可调用对象 d
代替 delete
我没有得到关于删除器的部分:p
将指向与 p2
相同的基础对象, 并且引用计数得到递增 1。定义 p2
时, 一个人会已经指定自定义删除器,或使用默认 delete
.什么是在这里指定一个新的删除器有什么意义?
unique_ptr<T, D> u(d)
: 空 unique_ptr
指向的对象输入 T
使用d
(必须是 D
类型的对象)在delete
的地方
现在,这是完全有道理的。但是,我发现了一个类似的shared_ptr
的构造函数, 但没有 unique_ptr
以下是我调查过的资源:
shared_ptr
:
unique_ptr
:
只是想确认他们是否合法?
最佳答案
在 20.7.2.2 中,我看到唯一接受删除器的 shared_ptr
构造函数是接受原始指针或 nullptr_t
的构造函数。
对于 unique_ptr
,从 20.7.1.2 开始,您似乎可以编造一个删除器类型,其底层 typedef 将是另一个 unique_ptr
,但为了保留正确的语义,您必须拥有对象本身的所有权,因此更改删除器不一定是个问题(例如,您可以将其从立即删除更改为即时返回池)。
关于c++ - Lippman's C++ Primer 中的 shared_ptr 和 unique_ptr 构造函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22942200/
目录 1. 数组概述 1.1 数组的定义 1.2 数组的声明 1.3 复合类型的数组 1.4 数组的初始化规则
我在 C++ Primer Plus 书中第 6 章的第 7 个练习中遇到了一些问题。好吧,我认为我把这个练习做得很好,但我的编译器不这么认为。该程序应计算单词开头的元音、辅音和其他字符的数量。问题是
目录 前言 类型转换 变量声明与定义的关系 变量命名规范 复合类型 引用 指针 const限
C++ Primer中有这样一句话:可以用单个实参来调用的构造函数定义了从形参类型到该类类型的一个转换。这句话用下面一段代码表示为: ?
第1章 快速入门 1,介绍main函数的意义和其基本结构,return语句。不同平台下编译与执行程序。 2,两个类isrteam与otream与它们的实例对象cin,cout,cerr,clog。
在下一个示例(由documentation提供)中: 我收到此错误: Type 'FunctionComponent & { size: [16, 16]; }' is missing the fo
以下摘自 的第 7.6 章作者:Stanley B. Lippman Josée Lajoie。 A function specified as inline is expanded "in lin
在 C++ Primer 5th Edition 中,有一个关于引用和 const 的部分,在第 97-98 页: const int temp = dval; // create a tempo
我正在关注这本书 - C++ Primer用于学习C++。我在介绍类的章节中间,我一直在解决包含两个类的头文件的问题。 这是两个类和头文件: 屏幕Cls.h: #ifndef SCREENCLS_H
我正在学习“C Primer Plus”,刚刚完成了编程练习,但我在第五章(运算符、表达式和语句)的最后一节上碰壁了。 练习是: 编写一个程序,请求用户输入华氏温度。该程序应将温度读取为 double
Closed. This question is off-topic。它当前不接受答案。
很抱歉转向这里提出这样一个基本问题,但有人可以快速为我解决这个问题吗?然后我会删除线程,以免造成新手困惑。 在以下来自 C++ Primer Plus 文本的示例中,函数声明中的 & 运算符是否指定函
这个问题在这里已经有了答案: 关闭 10 年前。 Possible Duplicate: GCC linker can’t find standard library? 我想弄乱我在假期得到的这本
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 我们不允许提出有关书籍、工具、软件库等建议的问题。您可以编辑问题,以便可以用事实和引用来回答它。 7年前关
我目前正在学习《C++ Primer》(第 5 版),并且正在努力弄清楚作者在这部分文字中的含义(第 2 章,第 2.1.3 节): ... By default, decimal literals
我正在尝试切换到 Primer design system , 我正在使用 Bootstrap现在。在不实际更改任何内容的情况下进行切换是否安全? 最佳答案 应该是安全的。 在切换到您要使用的 Pri
在 C++ primer 5 Ed 第 12 章中:动态内存。据说:“静态对象在它们之前被分配被使用,并在程序结束时被销毁。” 这是否意味着全局对象在控制通过它们的声明之前被定义和初始化。 我有这个例
为什么 ArrayTP eggweights; ArrayTP donuts;生成两个单独的类,但是 Stack eggs(12); Stack dunkers(13)只生成一个声明?他们不应该是两堆
我正在阅读这本书中关于字符串和文字的第 86 页,但我不明白为什么它会说以下关于字符串 s1 和 s2 的内容。 string s1("hello, "); string s2("world\n")
问题在评论里! 代码: auto beg = text.begin(), end = text.end(); auto mid = text.begin() + (end - beg) / 2; w
我是一名优秀的程序员,十分优秀!