![]() |
1
3
你们班怎么样 知道 这是一个自由存储指针?例如,什么与以下代码不符?
这是一段完全合理的代码,但是您的析构函数 将 尝试删除任何指针时崩溃。 长话短说:资源回收首先是分配资源的人的工作。如果您的类被传递一个指针,那么该类将不知道也不关心释放。这完全是呼叫者的责任。 正如前面提到的,解决这种困境而不让客户做很多工作的优雅方法是智能指针。 |
![]() |
2
9
你需要的是:
当通道不同时,指针也会不同。
然而,正如丹纳特尔在评论中指出的那样
尽管我对此不满意。
目前我唯一能看到的其他解决方案是更改
|
![]() |
3
7
如果你正在使用Boost,你可以考虑使用 boost::shared_ptr 这将在释放最后一个实例时自动删除该对象。 |
![]() |
4
3
? |
![]() |
5
3
经验法则:匹配
在这里,你会遇到经典 双自由 问题。
唯一的解决方案似乎是使用一个智能引用计数指针。 |
![]() |
6
0
我总是在设计时考虑对象所有权:
当试图回答这些问题时,我也决定了实现它的方法(析构函数、智能指针等)。 |
![]() |
7
0
别忘了让你的ichannelin和ichannelout析构函数虚拟化。如果析构函数不是虚拟的,则在调用ichannel析构函数时(即删除ichannel ptr内容时),不会调用tcpchannel或dummychannel析构函数。 |
![]() |
rookie · 检查函数模板的所有参数包参数是否属于int 1 年前 |
![]() |
ivaigult · -W转换和隐式字符串到布尔类型转换 1 年前 |
![]() |
rainer · 后台插入程序的初始化 1 年前 |
![]() |
Community wiki · 以理智、安全和高效的方式复制文件 1 年前 |
|
Shefali Kanaujia · 对C中向量的向量进行排序++ 1 年前 |
|
Ma Joonyoung · 粗粒度和细粒度链表的时间比较 1 年前 |