【发布时间】:2018-02-11 04:20:04
【问题描述】:
我正在为我的通用二进制搜索树创建我的节点类,并且我的 BSTNode 类和 BSTree 类有一个唯一的指针根节点,它采用 T 的 BSTNode。
每当我制作指针时,它都会显示这些错误
• "';' 前面的非预期标记"
• "语法错误:缺少';' before '
• "缺少类型说明符 - 假定为 int。注意:C++ 不支持 default-int"
如何使用 T 的节点类创建唯一指针?顺便说一句,我正在 Visual Studios 2017 中对此进行编码。
二叉搜索树头文件:
#include "BSTNode.h"
template <typename T>
class BST
{
public:
BST();
shared_ptr<BSTNode<T>> Root;
void Insert(T newValue);
void Delete(BSTNode<T> deleteNode);
BSTNode<T> MinimumValue();
BSTNode<T> MaximumValue();
bool IsLeftChild();
bool IsRightChild();
bool isEmpty();
};
节点头文件:
#pragma once
#include <memory>
#include <iostream>
template <typename T>
class BSTNode
{
public:
BSTNode(T);
unique_ptr<T> Value;
BSTNode* Parent;
BSTNode* Right;
BSTNode* Left;
};
【问题讨论】:
-
你是不是在定义
BST的头文件中#include定义了Node的头文件?请发帖minimal reproducible example。 -
是的,我确实包含了头文件。 @RSahu
-
请发布minimal reproducible example 并显示编译器标记了哪些行。发布的代码不应引起任何编译器消息。
-
@n.m.我会的,这是我知道的第二篇关于在 stackoverflow 上发布内容的帖子。