在C++中实现图形节点时将 C# 类转换为C++
本文关键字:C++ 转换 节点 实现 图形 | 更新日期: 2023-09-27 18:26:00
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