首页 > 解决方案 > 有没有办法让类在 C++ 中进行自我转换

问题描述

所以对于我的代码,我想构建一个四叉树。这意味着我必须细分数据集。为了解决这个问题,我想要外部节点(A 类)和内部节点(B 类)以及将外部节点转换为内部节点的方法。

有没有办法让类 A 以一种可以从类 A 本身内部完成的方式将自己转换为类 B,同时保留指向它的指针?

对不起,但我不知道如何更清楚地解释这一点。

class A{
public:
    int a;
    int b;

    int c;

    void convert(){

        *convert class A into class B: conserving int a and int b, and discarding int c*

    }
};

class B{
public:
    int a;
    int b;

    void* One; // can be a pointer to an instance of class A or class B
    void* Two; // can be a pointer to an instance of class A or class B
};

编辑:感谢您的反馈,我会重新考虑我的策略。

Edit2:我在这里找到了不存储无用指针的答案: https ://stackoverflow.com/a/48330314/6859125

标签: c++class

解决方案


你可能想要一个类:

class AB
{
    int a;
    int b;

    int c;
    bool amIABObject;
};

然后,只需更改布尔值以记住您是哪种“类型”。


推荐阅读