腾讯云
开发者社区
文档
建议反馈
控制台
首页
学习
活动
专区
工具
TVP
最新优惠活动
文章/答案/技术大牛
搜索
搜索
关闭
发布
登录/注册
精选内容/技术社群/优惠产品,
尽在小程序
立即前往
文章
问答
(9999+)
视频
沙龙
1
回答
C++中一类
隐
式
成员
函数
C++中类的
隐
式
成员
函数
是: As per:复制
构造
函数
如果没有移动
构造
函数
或移动
赋值
操作符显
式
地declared.If,则声明析构
函数
生成副本
构造
函数
。如果没有显
式
声明复制
构造
函数
、移动<e
浏览 2
提问于2013-02-14
得票数 6
回答已采纳
2
回答
临时对象中的成员变量是否会在可能的情况下
隐
式
移动?
、
、
、
在我的类中,我
使用
std::vector等作为成员变量,它们都有自己的移动
构造
函数
。我没有为我的类显
式
声明移动
构造
函数
,而且它们在大多数情况下也
不是
隐
式
声明的。如果我的类的
隐
式
复制
构造
函数
或
隐
式
赋值
运算符
是
使用
rvalue调用的,那么是否复制或移动了具有移动
构造</e
浏览 1
提问于2013-05-17
得票数 6
回答已采纳
2
回答
正文或头文件中的默认C++定义
、
Scott在“有效的C++:项目30:理解内联的详细情况”中指出,
构造
函数
和析构
函数
通常是内联的更糟糕的候选项。 定义类定义中的
函数
,请求(
而
不是
命令)
隐
式
地将它们内联。根据编译器的质量,编译器决定是否(显
式
或
隐
式
)定义
函数
实际上是否内联。考虑到所有这些因素,在正文文件中显
式
定义空/复制/移动
构造
函数
、复制&
浏览 3
提问于2017-05-02
得票数 5
回答已采纳
1
回答
特殊的成员
函数
是否除了或抛出()?
、
显然,
隐
式
生成的特殊
函数
(即默认
构造
函数
、析构
函数
、复制/移动
构造
函数
和复制/移动
赋值
操作符)具有异常规范。但是,规范似乎仅仅是根据现在不推荐的动态异常规范(即“抛出(T1,T2,T3)”编写的)。throw()
而
不是
noexcept。上文第15.4/14段的案文是规范性的,它说:
隐
式
声明的特殊成员
函数
(第12条
浏览 1
提问于2012-10-24
得票数 4
1
回答
隐
式
移动
构造
函数
和
赋值
操作符
、
、
、
什么意味着
隐
式
移动
构造
函数
进行成员级移动,
而
隐
式
移动
赋值
运算符
执行成员级分配?来自用
浏览 2
提问于2020-05-20
得票数 1
回答已采纳
1
回答
当每个用户定义的转换方法被称为
隐
式
时,规则是什么?
在类的世界中,
隐
式
转换可以通过三个成员
函数
来控制: 单参数
构造
函数
:允许从特定类型
隐
式
转换来初始化对象。
赋值
运算符
:允许在
赋值
时从特定类型
隐
式
转换。类型转换操作符:允许
隐
式
转换到特定类型。我想知道这些不同的
隐
式
转换是如何相互作用的。什么时候一个凌驾于其他人之上?规则是什么?
浏览 1
提问于2020-05-27
得票数 0
回答已采纳
3
回答
如果一个人不知道它的参数类型,怎么能默认一个特殊的成员
函数
呢?
、
、
具有相同的已声明
函数
类型(除了可能的differing ref-fiers,以及在副本
构造
函数
或副本
赋值
操作符的情况下,参数类型可以是“对非const T的引用”,其中T是成员
函数
的类的名称),就像它是
隐
式
声明的那样, 如果
隐
式
声明的复制
构造
函数
将具有A &类型,则我希望
使用
参数类型A &显
式
地默认复制
构造
函数</em
浏览 11
提问于2011-05-29
得票数 4
回答已采纳
2
回答
我可以将0
赋值
给shared_ptr吗?为什么?
、
、
中实现了以下编译功能: std::shared_ptr<int> p;} 但是,没有来自int或int*的
赋值
运算符
,也没有来自int或int*的
隐
式
构造
函数
。有一个来自int*的
构造
函数
,但它是显
式
的。我检查了标准库实现,
构造
函数
确实是显
式
的,看不到可疑的<em
浏览 0
提问于2012-08-10
得票数 12
回答已采纳
1
回答
如何解决声呐静态代码分析错误“显
式
定义缺少的复制
构造
函数
,移动
构造
函数
.”在C++中
、
我得到了下面的声纳静态代码分析错误: 显
式
地定义缺少的副本
构造
函数
、移动
构造
函数
、复制
赋值
操作符和移动
赋值
运算符
,以便它们不会被
隐
式
提供。在这里,我是否需要通过提供析构
函数
、复制
构造
函数
和复制
赋值
操作符、移动
构造
函数
和移动
赋值
操作符来遵循5的规则?还是有别的办法?此外,如果我定义了复制
浏览 1
提问于2020-05-19
得票数 1
回答已采纳
2
回答
显
式
移动ctor是否消除
隐
式
复制ctor?
、
、
、
我在“接受答案”( )中读到: 不会为显
式
声明移动
构造
函数
或移动
赋值
运算符
的类生成副本
构造
函数
和复制
赋值
操作符。我确实注意到(g++ 4.7.2),如果您定义了一个移动
构造
函数
,它将与例如push_back()一起
使用
,
而
如果您所做的只是复制
构造
函数
= delete,则不会得到一个
隐
式
移动
构造</e
浏览 2
提问于2013-09-19
得票数 4
回答已采纳
2
回答
隐
式
复制
构造
函数
/
赋值
运算符
的行为
、
、
、
假设你有一个基类,带有用户定义的复制
构造
函数
和
赋值
运算符
。派生类
使用
编译器生成的
隐
式
类。 派生类的复制/
赋值
是否调用用户定义的复制
构造
函数
/
赋值
运算符
?或者您是否需要实现调用基类的用户定义版本?
浏览 2
提问于2010-05-06
得票数 2
回答已采纳
3
回答
模板化
构造
函数
是否覆盖了C++中的
隐
式
复制
构造
函数
?
、
、
模板化的
构造
函数
(如下所示)是否覆盖了
隐
式
复制
构造
函数
?struct Foo T data; }; 如果是这样,如果other是通过值
而
不是
常量引用传递
浏览 0
提问于2012-06-13
得票数 7
回答已采纳
1
回答
使用
赋值
运算符
而
不是
隐
式
构造
函数
、
、
、
、
在我的程序中,我尝试
使用
赋值
operator=来
赋值
我的类的一个对象。我特别尝试调用
赋值
操作符,
而
不是
隐
式
构造
函数
(例如explicit关键字)。.; // C2440 } 我猜编译器在尝试
隐
式
调用
构造
函数
时会失败(因为explicit)。有没有人有办法?
浏览 7
提问于2021-05-05
得票数 0
回答已采纳
1
回答
识别自动生成的成员
函数
、
、
特殊的成员
函数
是“编译器
使用
时会自动生成的
函数
,但程序员没有显
式
声明这些
函数
”。详细情况见C++11标准第12节: 默认
构造
函数
(12.1)、复制
构造
函数
和复制
赋值
操作符(12.8)、移动
构造
函数
和移动
赋值
运算符
(12.8)和析构
函数
(12.4)是特殊的成员
函数
。注意:当程序没有显
式
声明这些
浏览 4
提问于2014-09-13
得票数 0
回答已采纳
1
回答
隐
式
删除子项时继承父项
赋值
运算符
、
、
、
、
在GCC 4.6中,可以继承父代的
赋值
运算符
,即使子代的
赋值
运算符
由于移动
构造
函数
而
被
隐
式
删除。在以后的版本中,这是不可能的。让子类
使用
父类的
赋值
操作符的正确方式是什么?
浏览 2
提问于2013-04-02
得票数 3
回答已采纳
5
回答
C++:默认复制
构造
函数
是否受其他
构造
函数
和析构
函数
的影响?
、
、
,如果声明了任何
构造
函数
(包括复制
构造
函数
),则不会
隐
式
创建默认
构造
函数
(不带参数的
构造
函数
)。默认的复制
构造
函数
(执行对象的浅层复制的
构造
函数
)也会发生同样的情况吗?另外,析构
函数
的存在会对此产生影响吗?
浏览 0
提问于2011-04-11
得票数 8
回答已采纳
2
回答
删除复制
构造
函数
和复制
赋值
运算符
。它们中的哪些是必不可少的?
、
、
、
、
我已经在下面写了一个复制
构造
函数
和复制
赋值
操作符删除的夸张的完整列表。它们太多了,我不知道该用哪一个,有时这会让我产生偏执。我不需要在我的代码中把它们都写出来,
不是
吗?那么,为了防止任何类型的对象复制,我应该
使用
它们中的哪一个?
浏览 8
提问于2015-11-18
得票数 17
回答已采纳
1
回答
什么意思移动操作从未被定义为已删除的
函数
?
、
、
直到第13章在谈到“移动操作”时: 与复制操作不同,移动操作从未被
隐
式
定义为已删除
函数
。但是,如果我们显
式
地要求编译器
使用
= default (§7.1.4,p. 264)生成一个移动操作,并且编译器无法移动所有成员,那么移动操作将被定义为删除。同样,对于move-assignment.The移动
构造
函数
或移动
赋值
操作符,如果类的成员的移动
构造
函数
或移动
赋值
运算符
被删除,或者将复制
浏览 1
提问于2020-02-02
得票数 0
2
回答
删除operator=(类型类型)是否足够?
、
const A&) = delete; A& operator=(A) = delete; A();或者我必须单独删除复制/移动
赋值
运算符
这里还需要析构
函数
吗?
浏览 0
提问于2013-07-05
得票数 21
回答已采纳
3
回答
什么时候C++默认
赋值
运算符
变得不可访问?
如果我定义了自己的
赋值
运算符
,该
运算符
的签名与正常生成的默认
赋值
运算符
不同:struct A { // assignsomething}; 默认的
赋值
操作符,在本例中是operator = (A&) (或类似的,如果错误,请纠正我)是否变得未定义/不可访问?这对于默认
构造
函数
是正确的,如果我们定义了其他
浏览 2
提问于2009-08-19
得票数 6
回答已采纳
点击加载更多
扫码
添加站长 进交流群
领取专属
10元无门槛券
手把手带您无忧上云
相关
资讯
一文详解C+编程中重要的类的重要函数成员及其重点难点解析
C++20:核心语言
JavaScript高级之函数高级
C/C+编程知识分享:C+手把手教你实现可变长的数组
带你入门Java之每日3分钟Java—数据运算符和显隐数据类型转换
热门
标签
更多标签
云服务器
ICP备案
实时音视频
即时通信 IM
对象存储
活动推荐
运营活动
广告
关闭
领券