c++11 - 从内部类继承并同时将其传递给外部模板?
问题描述
我正在尝试创建一个树结构,用户可以在其中创建自己的树节点继承者,但该节点封装了一些代码来管理其在树中的位置并将子节点暴露给继承者。我有类似这样的代码:
template <typename TData>
class TreeBase {
protected:
struct TreeNode { // should be fully encapsulated
TData data;
...
};
public: ...
};
template <typename TNode>
struct Tree: public TreeBase<TNode> {
class Node {
typename TreeBase<TNode>::TreeNode _tn; // keep encapsulated
public: ...
};
...
static_assert(std::is_base_of<Node, TNode>::value, "TNode must be a descendant of NodeTrie::Node");
};
尽管类定义可以编译,但我不知道如何使用它们。如果不将 Node 放在 Tree 的继承者中,我就无法创建 Node 的继承者,并且如果不传入我的节点类型,我就无法创建 Tree 的继承者。这是鸡和蛋的问题。有什么建议么?
解决方案
推荐阅读
- mysql - 为什么我的 VB 中的 MySQL 事务不起作用?
- postgresql - Elixir -- Ecto -- 复合主键和关系
- jquery - Jquery ajax 发送带有 JSON 对象数组值的 JSON 对象
- php - Yii2 Dropzone 已附加且未提供 URL 错误
- css - 如何在反应中添加内联动画?
- security - 资产文件夹的权限以避免 Javascript 攻击?YII 和 Ubuntu
- javascript - Gantry 5 Extended Style menu dropdown onclick to hover
- swift - 如何访问 HashedAuthenticationCode 的代码(作为字符串)?
- aem - 如何将 CSS 样式添加到 AEM 中的 cq:dialogue
- google-cloud-platform - 在两个谷歌云项目之间复制数据以及以数据为中心的环境中 DEV 和 PROD 环境的最佳实践