c++ - 从现有指针 C++ 创建一个新对象

标签 c++ pointers syntax copy-constructor auto-ptr

我一直在寻找答案,但还是想不通。

抱歉,我的工作太复杂了,无法在此处复制示例代码。

我有一个函数,它获取一个指针作为参数;我使用它,但后来,我需要一种回调,我想在其中使用我的旧尖头对象。

问题是,调用此回调时,指针已被删除或释放。我的想法是在堆上复制指向的对象,并在回调完成时释放它。但是我在指针、复制构造函数和其他东西之间迷路了。解决方案可能非常简单,但我被卡住了。

最佳答案

如果你有一个T * p,那么你可以像这样创建一个新对象:

T x(*p);

或者,如果您必须(但认真地说,不要!),一个动态分配的对象:

T * q = new T(*p);

不要使用第二种形式。您为此带来的头痛永无休止。

关于c++ - 从现有指针 C++ 创建一个新对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13200651/

相关文章:

c++ - 如何在大型机中显示 CFormView?

c++ - 如何检查字符串是否包含空格/制表符/换行符(任何空白的内容)?

c++ - 一个类的构造函数,为其他类类型转换..将调用什么函数?

c++ - 具有原子变量的指针所有权

c - 如何分配内存并将其返回(通过指针参数)给调用函数?

c - 将 void * 值设置为 intptr_t 变量是否需要显式转换?

c++ - 两个单独的 "if",相同的条件 - 可以吗?

c++ - 假设所有 Windows 平台都在 UCS-2 LE 中是否安全

javascript - 两个代码之间的差异

jquery 滚动顶部不工作