尝试使用模板创建类的新实例,出现意外错误

2023-12-02

试图做一个B inary S earch Tree(简称BST)使用模板。

当我尝试创建 BST 的新实例时,出现意外错误。我希望解决方案不涉及指针,因为我想将它们保持在最低限度。

现在我有:

template <typename Type>
class BST {                 // The binary search tree containing nodes
private:
    BSTNode<Type> *root;    // Has reference to root node

public:
    BST ();
    bool add (int, Type);
};

以及节点类型:

EDIT:当我删除代码以取消阻碍文本时,我忘记了构造函数,现在它已被添加

template <typename Type>
class BSTNode {    // Binary Search Tree nodes
private:
    int key;       // we search by key, no matter what type of data we have
    Type data;
    BSTNode *left;
    BSTNode *right;

public:
    BSTNode (int, Type&); 
    bool add (int, Type);
};

EDIT2:这是实际的构造函数

template <typename Type>
BSTNode<Type>::BSTNode (int initKey, Type &initData) {
     this->key = initKey;
     this->data = initData;
     this->left = NULL;
     this->right = NULL;
}

我想尝试测试是否有任何功能有效/无效

BSTNode<int> data = new BSTNode (key, 10);

我得到: BSTNode 之前的预期类型说明符。我不知道我做错了什么,但我确实希望的一件事是我不必使用数据作为指针。

BSTNode<int> data = new BSTNode<int> (key, 10);

也不起作用,看来它相信< int > is < & int>它不匹配


首先,您需要在分配的 RHS 上完全指定类型,并且,因为您正在实例化动态分配的节点,new,LHS 应该是一个指针:

BSTNode<int>* data = new BSTNode<int> (key, 10);
            ^                     ^

如果不需要节点指针,则使用

BSTNode<int> data(key, 10);

其次,你的BSTNode<T>类没有采用 int 和 a 的构造函数Type,所以你也需要提供它。

template <typename Type>
class BSTNode {
 public:
  BSTNode(int k, const Type& val) : key(k), data(val), left(0), right(0) { .... }
};
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

尝试使用模板创建类的新实例,出现意外错误 的相关文章

随机推荐

  • 使用 NavigationView 进行交叉导航

    我有以下结构 enum Page case chapter1 case chapter2 struct ContentView View State var page Page nil var body some View Navigati
  • 安装 WIF 运行时以在 Windows Azure 中托管 .NET 应用程序

    我开发了一个自定义应用程序 它能够使用 CRM Web 服务并从自定义 NET 页面在 CRM 中执行 Windows Live Id 身份验证 创建 读取和更新操作 当我在 Visual Studio 2010 中调试应用程序时 它运行得
  • jQuery UI 多个可排序列:滚动问题

    jQuery 1 9 1 jQuery 用户界面 1 10 1 请看小提琴 td class my column div class my div class p class para item para 101 p div td td d
  • 操作系统升级后,我的 ANT 版本无法正常工作

    我最近将系统从 Mint12 升级到 Mint14 并且在让旧项目在新系统上正常运行方面遇到了严重问题 总结一下 让 Mint14 正常工作并安装了我所有必需的软件 Eclipse ANT 等 从备份磁盘恢复我的文件 将 Oracle JD
  • Facebook iPhone 应用程序支持哪些自定义 URL 方案?

    Note 这些 URL 可能不可用 Facebook 已更新多次 但并未正式支持其中任何一个 Note 我正在尝试查看有关 iPhone 上的 Facebook 应用程序的可用信息 到目前为止 我发现了几个包含有限信息的网站 并且我能够弄清
  • C++ DLL 插件接口

    我打算做一个 C 插件接口 ala如何从 dll 创建某个类 dll 中的构造函数 但有人担心 如果使用该接口通过 MinGW 或 Borland 创建 DLL 并且 DLL 加载器是用 MSVC 编译的 可能会出现问题 由于唯一的导出函数
  • 复制句柄类的 MATLAB 对象

    我在 MATLAB 中实现了一个句柄类 并尝试通过调用以下两个函数来复制该类的对象 objByteArray getByteStreamFromArray obj newObj getArrayFromByteStream objByteA
  • 3D 中的 Numpy 网格

    Numpy 的网格网格对于将两个向量转换为坐标网格非常有用 将其扩展到三维空间的最简单方法是什么 因此 给定三个向量 x y 和 z 构造可用作坐标的 3x3D 数组 而不是 2x2D 数组 Numpy 我认为从 1 8 开始 现在支持高于
  • 找到噪声图像边缘的最佳方法

    我有一个噪声图像 如下图所示 假设它是高斯噪声 目前 我使用两个步骤来寻找边缘 使用高斯滤波器 G 平滑图像 根据方程找到边缘 g 1 1 I G 2 其中 G 是高斯滤波器 是控制噪声水平的权重 然而 高斯滤波器是图像边缘丢失的原因 我想
  • 带参数的 Prolog DCG

    我不知道如何使用参数来处理 DCG 假设我们想用 DCG 来代表父母和他们的孩子 那么我们可以说 father gt Peter mother gt Isabel child gt Guido child gt Claudia verb g
  • 从 JTextPane 中的任何偏移量获取样式

    有没有办法得到Style 样式名称或者只是比较是否Style在某个位置JTextPane与我在插入时给文本的样式 因为为了我的目的 我创建了自定义JTextPane StyledDocument and DocumentFilter 所以我
  • 将输入字符串转换为 float/double C++

    所以我知道如何在 C 中执行此操作 但不知道如何在 C 中执行此操作 我正在尝试将给定用户输入解析为双精度 以便稍后进行数学运算 但我是 C 新手 并且遇到了麻烦 帮助 C public static class parse public
  • gmail api 给出 failedPrecondition 错误

    我无法让 gmail api 工作 我正在使用 JWT 进行服务器到服务器身份验证 google api python client 1 4 0 httplib2 0 9 oauth2client 1 4 7 pycrypto 2 6 1
  • 如何设置“discrete_distribution”向量 C++

    我正在尝试模拟马尔可夫链之类的东西 并使用discrete distribution来模拟状态s i到s j的变化 但当然 这是一个矩阵 而不是向量 所以我尝试一下 std vector
  • gcc,内联汇编 - Pushad/popad 丢失?

    有什么方法可以避免复制粘贴pushad popad指令体到我的代码中 因为 gcc 当前标志 Wall m32 抱怨说 asm pushad 错误 没有这样的指令 pushad asm popad 错误 没有这样的指令 popad GCC
  • 如何在自定义 JsonConverter 中使用默认序列化

    我有一个复杂的对象图 我正在使用 Json NET 对其进行序列化 反序列化 一些对象派生自抽象类 因此为了使反序列化正常工作 我需要创建一个自定义JsonConverter 它的唯一作用是在反序列化时选择抽象类的适当具体实现 并允许 Js
  • 如何修复:异步方法的返回类型必须为 void、Task 或 Task [AppName]

    我正在使用 VS Code 并遵循 ASP NET Core EF Core 教程 并承认我不太清楚 async await 和 Task 是如何工作的 嗯 我知道前两个 但不知道第三个 我第一次实现一个存储库 以及与之配套的 Unitof
  • IP地址? - 可可

    我如何制作一个 GUI 程序 只需单击一个按钮即可显示您的 IP 地址 拜托 没有什么困难的解释 我不久前刚刚开始使用 Cocoa Thanks Kevin 您可以通过两种方式获取IP地址 1 如果您想获取当前使用网络上的本地ip地址 可以
  • 为什么顶层显示 2 个窗口?

    我正在尝试制作一个 tkinter 应用程序 当第一个窗口 根 关闭时 它不会关闭所有内容 其他窗口 我尝试过使用Toplevel 它非常适合其他程序中的弹出窗口 但不适用于制作基础级别 from tkinter import top To
  • 尝试使用模板创建类的新实例,出现意外错误

    试图做一个B inary S earch Tree 简称BST 使用模板 当我尝试创建 BST 的新实例时 出现意外错误 我希望解决方案不涉及指针 因为我想将它们保持在最低限度 现在我有 template