C++取消引用并将值分配给指针的正确方法

标签 c++ pointers

假设我只是想要一个函数,它接受一个指针作为参数,取消引用它,然后使它等于一个新实例化的类..

例如:

class MyClass {
    MyClass(int v) {value = v;}

    int value;
}

Set_New_Class(MyClass *x) {
    *x = *( new MyClass(1) );       // Messy!!
}

让我困扰的是最后一行..对我来说这看起来很乱,事实上,我什至不确定这是否是正确的方法...

我的方法有什么问题吗?在 C++ 中执行此操作的正确方法是什么?

最佳答案

Set_New_Class 这样的函数真的没有用。只需创建另一个构造函数,它默认将 1 分配给 value:

class MyClass 
{
    MyClass(int v) : value(v) {} 
    MyClass() : value(1) {}

    int value;
};

然后

MyClass x;

一般来说,我会在这里给你你想要的。其中x之前已经定义过了,要重新定义,那么

x = MyClass();

会做的。

关于C++取消引用并将值分配给指针的正确方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24705754/

相关文章:

arrays - 程序中的C内存泄漏

c++ - 如何通过指针将一个实例替换为另一个实例?

c++ - 如何在 Raspberry Pi 中使用 Basler GigE 相机 pylon5 c++ 库

c++ - 无法删除结构指针内的指针数组 (c++)

c++ - 对 C++ 嵌套依赖类型名称感到困惑

c++ - operator= in c++(11)工作方向

c - 指向链表的指针数组

C: 两个不同的数组指向同一个结构

c# - C 到 C# PInvoke 带指针的结构

c++ - 如何使用 Blob 检测器