English 中文(简体)
要求删除两点对同一物体
原标题:Calling delete on two pointers to the same object

我与几门活动手打一门试图写字的Im。 基本上,设想为每个符合逻辑的物体类别安排一次活动手递。 在大多数情况下,事件在物体与手持之间,但在有些情况下,事件也发生在手持物体之间。

我在撰写该守则时,将活动放在一个栏目上(stack,如用户创建的结构;活动本身使用new)和delete,在阅读和采取行动后进行。 这给我带来了一些问题,因为在一种情况下,这次活动沿三个处理器的链条进行。 Say,HandlerA sents a new event to HandlerB, which place it at the ack andread, sent it to HandlerC, which读本并履行它需要履行的一切职能,其次为:deletes>s the event pointer and set it to NUL。 现在,我们回到了<条码>HandlerB,而且,我们也希望通过<条码><>delete/code>和<条码>,参加活动的人。 但是,点人是一个地方变量,最后是两次删除同一地址,只举一个例外。

你们怎么办? 您是否需要使用这些缩略语之一(auto_ptr(在这里提早学习者),还是我在这里没有基本的东西?

最佳回答

我写了这部法典,这样,在了解情况并采取行动之后,这些活动就被放在一栏上,删除。

这里有一些混淆: st中的物体应为not>>。 印有<条码>的物体 (一) 应。

总的来说,你应当为你的 objects子确定明确的所有权战略。 每个物体应有一个所有人,而且应当明确谁是所有人。 该所有人——单是——应<代码>delete

您也可使用<代码>boost:共有_ptr。 (也可作为<代码>std:tr1:共享_ptr,视您的汇编者而定)而不是原始点。 这保留了提及该物体的内容,而delete则在重新计算后降至0时。

问题回答

你们想要的是,有时使用参考计数来核对其他变量是否提到同一情况。 设想是,只有在其他任何点人不使用该物体时,该标的点数才算出。 这些要点一般称为Smart Pointers。 例如,在C++中,你可以使用Boost

我认为,问题是,点人没有明确的主人。 一种解决办法是聪明的点子,正如在不成熟的回答中指出的那样。 或者,如果一位手(例如你的书记官B)收到需要向另一名手提的一件事,那就会产生新的事件,而不是把现在的事件推向上。

这就是说的;如果你ling忙花时间去研究他们,我认为,“聪明点”解决办法可能更好!





相关问题
Undefined reference

I m getting this linker error. I know a way around it, but it s bugging me because another part of the project s linking fine and it s designed almost identically. First, I have namespace LCD. Then I ...

C++ Equivalent of Tidy

Is there an equivalent to tidy for HTML code for C++? I have searched on the internet, but I find nothing but C++ wrappers for tidy, etc... I think the keyword tidy is what has me hung up. I am ...

Template Classes in C++ ... a required skill set?

I m new to C++ and am wondering how much time I should invest in learning how to implement template classes. Are they widely used in industry, or is this something I should move through quickly?

Print possible strings created from a Number

Given a 10 digit Telephone Number, we have to print all possible strings created from that. The mapping of the numbers is the one as exactly on a phone s keypad. i.e. for 1,0-> No Letter for 2->...

typedef ing STL wstring

Why is it when i do the following i get errors when relating to with wchar_t? namespace Foo { typedef std::wstring String; } Now i declare all my strings as Foo::String through out the program, ...

C# Marshal / Pinvoke CBitmap?

I cannot figure out how to marshal a C++ CBitmap to a C# Bitmap or Image class. My import looks like this: [DllImport(@"test.dll", CharSet = CharSet.Unicode)] public static extern IntPtr ...

Window iconification status via Xlib

Is it possible to check with the means of pure X11/Xlib only whether the given window is iconified/minimized, and, if it is, how?