在C++中实现图形节点时将 C# 类转换为C++
Convert C# class to C++ in implementing graph nodes in C++
private class Node
{
public int Value;
public Node[] ChildNodes;
public bool Selected;
}
类节点包含一个节点数组。
我的C++很生疏。在我们处理编码之前,您需要了解一些事项。
类不能直接使用访问修饰符,如public
、protected
、private
或C++。这意味着我们已经在
Nested Class
遇到了问题。
您可以使用#pragma once
来绕过它
这带来了(伪(代码:
class Outer
{
private:
class Node
{
public:
}
};
然后,我们必须添加字段,通常(至少习惯于(在变量名称使用前缀C++,就像在 C# 中大写字段一样。
int mValue;
Node* mNodes;
bool mSelected;
这就把我们带到了最后一堂课:
外.H
#ifndef OUTER_H
#define OUTER_H
class Outer
{
private:
class Node
{
public:
int mValue;
Node* mNodes;
bool mSelected;
}
};
#endif
更多"包括守卫"可以在这里阅读。在某些环境中,您可以使用CC_7代替警卫。
我希望这能让你开始。此代码尚未经过测试。
这是一个XYZ问题,我们不知道出于什么原因你想用C++而不是C#编写它。与C++一起工作可能会很麻烦。我还(在这两种情况下(建议在 C# 中使用 List a Vector in C++而不是 Array。
首先,C# 中的私有类必须包含在外部类型中,因此我们可以假设此类型已经嵌套(即,C# 和 C++ 都不允许在命名空间级别使用私有类(。接下来,使用 std::vector 而不是实际数组要容易得多:
#include <vector>
//class Outer { - your existing outer class
class Node
{
public:
int Value = 0;
std::vector<Node*> ChildNodes;
bool Selected = false;
};
//}; - end of your existing outer class
相关文章:
- 防止主数据类型C++的隐式转换
- 模板参数替换失败,并且未完成隐式转换
- 努力将整数转换为链表。不知道我在这里做错了什么
- HEX值到wchar_t字符(UTF-8)的转换
- lambda参数转换为constexpr技巧,然后获取带链接的数组
- 将 Qvector<uint8_t> 转换为 QString
- 如何在cuSparse中使用cusparseXcoo2csr从coo转换为csc
- 有关插入适配器的错误。[错误]请求从 'back_insert_iterator<vector<>>' 类型转换为非标量类型
- 在c++中使用nlohmann从类到json的转换
- 从"int*"强制转换为"unsigned int"会丢失精度错误
- 将Integer转换为4字节的unsined字符矢量(按大端字节顺序)
- 处理小于cpu数据总线的数据类型.(c++转换为机器代码)
- 如何使用OpenCV将RBG图像转换为HSV,并将H、S和V值保存为C++中的3个独立图像
- 复制列表初始化的隐式转换的等级是多少
- 正在将指针转换为范围
- 如何防止 c++ 在从浮点型转换为双精度型(不适用于 IO)时添加额外的小数?
- 将"打开的CV图像"中的"颜色"转换为整数格式
- 是否可以从int转换为enum类类型
- 了解 GLM- openGL 中的相机转换
- 将无符号char*转换为std::istream*C++