有没有办法让类在C++中转换自己

Is there a way to let class convert itself in C++

本文关键字:C++ 转换 自己 有没有      更新时间:2023-10-16

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

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

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

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
};

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

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

你可能想要一个类:

class AB
{
int a;
int b;
int c;
bool amIABObject;
};

然后,只需更改布尔值即可记住您是哪种"类型"。