定义指向 C++ 中相同元素类型的元素
Define an element that points to a same element type in C++
我想定义一个指向相同元素类型的元素,如下所示:
#define Foo { Foo*, ..., ... }
例如,这有助于我创建一个简单的树,而无需创建任何辅助类:
#define TreeNode std::deque(std::pair(char, TreeNode*))
TreeNode mRootNode;
但是,这无法完成,因为Foo
在其声明中引用自身时仍未声明。
我的问题是...为什么在使用类实现时允许相同的功能?有没有另一种更简单的方法,而不是面向对象,来定义我的Foo
?
定义定义指向相同元素类型的元素C++
可以引用同一类型的另一个对象的类型的一种简单方法是定义如下所示的数据结构:
struct Foo {
Foo* link;
};
无需宏。
这是允许的,因为在声明成员指针时已声明Foo
。语言规则允许递归类,但不允许递归预处理器宏。
附言澄清问题中的一些混淆:虽然C++中的类支持面向对象的功能,但您可以选择不使用这些功能,而是使用类,就像在 C 中使用结构一样。
相关文章:
- C++ 未初始化的本地(非全局)int 数组中的元素类型到底是什么?
- 如何将 n 个连续元素插入到元素类型不可复制的 std::vector 中?
- 元函数使用 decltype 返回元素类型
- STDLIB中容器元素类型有什么要求?
- 使用 dectlype 推断模板元素类型中的数据类型是否正确?
- boost multi_index - 如果元素类型仅支持移动语义,如何遍历它?
- 打印/修改类对象的特定成员变量,其类定义列表 (STL) 包含的元素类型
- 使用声明中的元素类型隐式初始化 std::array
- 使用 SFINAE 和 void_t 来确定容器内的元素类型
- 键入 trait 以获取 std::array 或 C 样式数组的元素类型
- 如何在QTScript中将QLIST内部的QMAP注册为元素类型
- 关联容器,比较函数不是元素类型的一部分吗?
- 特征稀疏矩阵的 CoeffRef 中的错误,元素类型为向量
- 在编译时间检查模板参数类型是否设置或多键,并且容器的元素类型是算术的
- 从函数模板参数中自动推论对容器的元素类型
- 直接获取基于范围的循环中的元素类型 **例如"using"
- 定义指向 C++ 中相同元素类型的元素
- 如何在C++中一一阅读 CIN?元素类型不同
- 如何从STL容器实例中获取元素类型
- 容器的const_cast元素类型