腾讯云
开发者社区
文档
建议反馈
控制台
首页
学习
活动
专区
工具
TVP
最新优惠活动
文章/答案/技术大牛
搜索
搜索
关闭
发布
登录/注册
精选内容/技术社群/优惠产品,
尽在小程序
立即前往
文章
问答
(9999+)
视频
沙龙
3
回答
C++
析
构
函数
是否总是或仅有时调用数据成员
析
构
函数
?
c++
、
destructor
我试图验证我对
C++
析
构
函数
的
理解。我
的
预感
浏览 4
提问于2013-11-09
得票数 10
回答已采纳
2
回答
是否允许
C++
编译器优化器多次调用我
的
析
构
函数
?
c++
、
optimization
、
compiler-construction
我们曾经采访过一个非常有经验
的
C++
开发人员,他无法回答以下问题:是否有必要从
C++
中
的
派生
类
析
构
函数
中
调用基
类
析
构
函数
? 显然答案是否定
的
,
C++
将自动调用基
类
析
构
函数
。但如果我们试着打电话呢?在我看来,结果将取决于基
类
浏览 5
提问于2010-05-04
得票数 4
回答已采纳
4
回答
为什么默认情况下C4265 Visual
C++
警告(虚拟成员
函数
和无虚拟
析
构
函数
)是关闭
的
?
c++
、
visual-c++
、
compiler-construction
、
destructor
、
compiler-warnings
当
类
至少有一个虚拟成员
函数
但没有虚拟
析
构
函数
时,Visual
C++
可以发出。 显然,这个警告是为了检测派生
类
对象通过指向基
类
的
指针被deleted,并且基
类
中
没有虚拟
析
构
函数
的
情况。这种情况会产生未定义
的
行为
。顺便说一句,我刚刚在一个相当庞大
的
代码库中找到了一个这种情况<e
浏览 0
提问于2011-11-08
得票数 1
回答已采纳
8
回答
虚拟
析
构
函数
是如何工作
的
?
c++
、
visual-c++
、
destructor
、
bounds-checker
几个小时前,我正在摆弄一个内存泄漏问题,结果发现我真的搞错了一些关于虚拟
析
构
函数
的
基本东西!让我来解释一下我
的
类
设计。}{ b->push_elements();} 边界检查器工具报告派生
类
向量
中
存在内存泄漏我发现
析
构
函数
不是虚
的
,派生
类<
浏览 5
提问于2010-04-27
得票数 6
回答已采纳
2
回答
双重结构是未定义
的
行为
吗?
c++
、
object
、
c++11
、
constructor
、
lifetime
在我们
的
代码库
中
,使用了一个内存块池,并且在“分配”时使用“放置新”来构造对象。不过,我忽略了
析
构
函数
调用,发现允许“双重构造”很
奇怪
,并且不知道在同一个对象上再次调用构造
函数
是否是未定义
的
行为
。在C++11 3.8.4 basic.life
中
,它读取 程序可以通过重用对象占用
的
存储或显式调用
类
类型
的
对象
的
析
构
浏览 5
提问于2020-11-10
得票数 4
回答已采纳
1
回答
如何在LLVM
中
获取
C++
析
构
函数
?
c++
、
llvm
C++
类
析
构
函数
的
名称将在编译过程中被拆分。例如,
类
student
的
析
构
函数
的
名称将被编译为类似于_ZN7studentD2Ev
的
名称。所以我不知道
类
析
构
函数
的确切名称。我想对
析
构
函数
做一些分析和转换。有没有办法在LLVM传递(或机器传递)
浏览 3
提问于2018-09-12
得票数 1
9
回答
难以理解
C++
的
“虚拟人”
c++
、
virtual-functions
我很难理解virtual关键字在
C++
中
的
用途。我非常了解C和Java,但我对
C++
还是新手#include <iostream> using nam
浏览 9
提问于2009-12-01
得票数 5
回答已采纳
1
回答
我不明白
C++
关于虚拟
析
构
函数
的
基本解释
c++
、
virtual-destructor
我不明白著名
的
C++
Primer
的
这句话:std::unique_ptr<Base> derived(new Derived); 我们肯定会有一种不明确
的
浏览 4
提问于2022-10-27
得票数 -1
3
回答
boost::checked_delete
的
目的
c++
、
boost
、
standards
我不明白boost::checked_delete
的
目的。文件上说:
C++
标准允许在5.3.5/5
中
使用delete-表达式删除指向不完整
类
类型
的
指针。当
类
具有非平凡
析
构
函数
或特定于
类
的
运算符delete时,
行为
将未定义。一些编译器在删除不完整类型时发出警告,但不幸
的
是,并非所有编译器都会发出警告,程序员有时会忽略或禁用警告。提供
的
浏览 3
提问于2010-05-17
得票数 16
回答已采纳
1
回答
使用受保护
的
析
构
函数
删除对象
c++
、
pointers
、
constructor
、
protected
我对
C++
内存管理相当陌生。我读了并找到了这个答案:如果您有一个公共
的
非虚拟
析
构
函数
,那是没有好处
的
,因为它允许用户通过该指针删除派生对象。因为我们都知道,这是不确定
的
行为
。 对于不打算通过指向该类
的
指针进行删除
的
类
,没
浏览 1
提问于2012-01-08
得票数 1
回答已采纳
3
回答
为什么抽象
类
的
默认destuctor不是虚拟
的
?
c++
、
virtual-destructor
考虑一下{ virtual void foo () = 0;在这一点上,很明显,A是一个抽象
类
,永远不会自己实例化。那么为什么标准不要求自动生成
的
析
构
函数
也必须是虚拟
的
呢? 每当我需要在我
的
接口
类
中
定义一个虚拟
的
虚拟描述器时,我都会问自己这个问题,但我不明白为什么commetee不这样做。所以问题是:为什么在抽象
类
中生成
的
析<
浏览 14
提问于2012-11-15
得票数 8
回答已采纳
2
回答
用Try / Catch块替换
析
构
函数
中
的
方法块
c++
、
visual-studio-2008
我最近
的
任务是找出我们代码
的
一部分
中
的
内存泄漏。泄漏最终在一个特定object...and
的
析
构
函数
中
,我发现了一些非常
奇怪
的
东西。一位前同事写道:try Clear();catch (...) Log("caught exception");file
类
继承自一些基
类
我
的
浏览 1
提问于2011-05-10
得票数 6
回答已采纳
1
回答
确保在释放
类
时释放
类
成员。
c++
、
destructor
、
composition
我有以下情况:Class A{} ~B(){cout<<"cleaning the context initialization done before"<<endl;}到目前为止,这是有效
的
,因为当b被销毁时,~B()被调用(我猜它
浏览 0
提问于2012-11-08
得票数 3
回答已采纳
2
回答
在包含静态字段
的
非静态
类
中
触发
析
构
函数
?
c#
、
asp.net
、
asp.net-mvc
我想测试一个
析
构
函数
何时在
类
中被调用,当它是一个简单
的
类
时,每件事情都按预期进行--当我们离开实例
的
作用域
析
构
函数
被调用时。public class HomeController : Controller
浏览 0
提问于2019-09-14
得票数 2
回答已采纳
3
回答
理解派生
类
中
C++
析
构
函数
的
行为
c++
、
inheritance
、
destructor
我正在阅读Stroustrup
的
C++
编程书中
的
一段代码。double& operator[](int i) { return v[i]; }};
析
构
函数
(~Vector_container())重写基
类
析
构
函数
(~Container())。注意,成员
析
构</em
浏览 0
提问于2019-07-10
得票数 2
回答已采纳
1
回答
为什么删除
析
构
函数
在普通
析
构
函数
之外占据第二个vtable槽?
c++
、
memory-management
、
linker
、
virtual-destructor
、
itanium
在以
C++
为模型
的
实现
中
,虚拟
析
构
函数
实际上占据了两个vtable槽。除了执行您期望
的
“完整对象
析
构
函数
”之外,“删除
析
构
函数
”还有第二个条目,它调用第一个
析
构
函数
,然后删除对象
的
内存。这是因为
C++
编译器/链接器通常无法检测到没有从任何地方调用vtable
浏览 3
提问于2020-02-25
得票数 2
2
回答
boost::scoped_ptr
的
C++
析
构
函数
问题
c++
、
abstract-class
、
destructor
、
virtual-functions
我有一个关于以下代码
的
问题:#include <boost/scoped_ptr.hpp> { class A : public它没有调用A
的
析
构
函数
。我看到
的
获取A
的
析
构
函数
的
唯一方法是为Interface
类
添加一个
析
构
浏览 0
提问于2010-06-16
得票数 2
回答已采纳
2
回答
C++
的
虚拟性实例
c++
、
virtual-destructor
我试图通过以下例子来理解
C++
中
的
破坏
行为
: 这个列表是否填满了所有可能
的
流?应该加些什么?如何将给定
的
例子转换为短期术语?提出了“总是让基
类
的
析
构
函数
变成虚拟
的
,而这些
析
构
函数
是要进行多形性操作
的
。”这不包括场景4。Scott
的
有效
C++
中
的</e
浏览 2
提问于2013-10-04
得票数 1
回答已采纳
3
回答
基
类
没有
析
构
函数
,但派生
类
有。我是否需要寻找与堆无关
的
陷阱?
c++
、
inheritance
、
destructor
在继承方面,我知道建议您
的
类
的
析
构
函数
是虚拟
的
,因此除了任何派生
析
构
函数
之外,基
类
的
析
构
函数
都会被正确调用。但是,我想知道在下面的场景
中
是否存在与派生对象相关
的
堆栈相关问题。让我们假设我们有一个基
类
,它没有
析
构
函数
(不管出
浏览 6
提问于2016-05-22
得票数 2
回答已采纳
2
回答
不默认
析
构
函数
会导致不完全类型错误。
c++
、
gcc
、
destructor
、
incomplete-type
这个例子显示了编译器
的
奇怪
行为
(msvc14,gcc,clang),但是我没有找到解释。 当我们实现pipml成语和使用前向声明时,我们需要考虑到unique_ptr有自己
的
不完全类型
的
特定
行为
。但是,当我们将转发
类
的
定义移到另一个头文件
中
,并在以后使用客户端
类
时将头包含在一个地方时,编译器就会变得疯狂--在某些特殊
的
析
构
函数
声明
中</e
浏览 4
提问于2017-07-26
得票数 3
回答已采纳
点击加载更多
扫码
添加站长 进交流群
领取专属
10元无门槛券
手把手带您无忧上云
相关
资讯
C/C+编程笔记:一文带你读懂C+面向对象和Java面向对象的区别
当对象释放时,避免析构函数调用两次
掌握这些技巧,让你的程序性能和可维护性双双提升!
关于C+的虚函数和多态,你觉得很难?首先你需要了解这三点!
C+之虚函数
热门
标签
更多标签
云服务器
即时通信 IM
ICP备案
对象存储
实时音视频
活动推荐
运营活动
广告
关闭
领券