c++ - 有没有办法让类在 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
解决方案
你可能想要一个类:
class AB
{
int a;
int b;
int c;
bool amIABObject;
};
然后,只需更改布尔值以记住您是哪种“类型”。
推荐阅读
- r - 使用 TDM/DTM 在 R 中进行情感分析
- javascript - 在节点环境中捆绑浏览器库
- swiftui - 没有披露指示器的 SwiftUI NavigationButton?
- javascript - 更新 Vuex 商店中二维数组中的项目
- c - 如何在risc-v中实现printf函数?
- docker - Stilliard/pure-ftpd:允许其他 docker 容器的 ftp?
- c++ - 这两个中哪一个是实现标头的正确方法?
- c - 父进程在挂起时仍然收到信号
- python - 为什么我的 Python 正则表达式不匹配查询字符串的一部分?
- amazon-web-services - %matplotlib 内联魔术命令无法从 AWS-EMR Jupyterhub Notebook 中的先前单元格读取变量