BST编译问题

来源:5-2 二分搜索树基础 (Binary Search Tree)

慕妹2184772

2019-12-05

老师,我在这节中遇到几个编译问题,见图片!

图片描述

【只能加一张图片?】
另一个编译问题是在CBST.cpp中,生成的构造函数不识别,说是不匹配的函数声明:

#include "pch.h"
#include "CBST.h"

template <typename Key, typename Value>
CBST::CBST()
{
	root = NULL;
	count = NULL;
}


CBST::~CBST()
{
	
}

报错:Severity Code Description Project File Line Suppression State
Error C2244 ‘CBST::CBST’: unable to match function definition to an existing declaration

写回答

1回答

liuyubobobo

2019-12-05

目测是 visual studio 的问题。因为 visual studio 的编译器其实不遵循 C++ 标准,而是使用微软自己的标准,所以可能存在这类问题(如果你确认你的代码没有其它问题。)


具体怎么修改,你的第一个问题应该比较简单,虽然我不明白为什么会找不到 NULL,但是可以试试使用 0 或者 nullptr,都是空的意思。(另外,我建议你单独开一个简单的程序,一个main函数,里面写一句 int* a = NULL; 看编译是不是有问题?)


至于你的第二个问题,我不确定是什么问题。如果在之前的程序中,类的构造函数都能识别的话,大概率是你的代码有错误,需要自己再好好调试一下。但如果你写任何类的构造函数都不能识别,那我也不知道为什么了。


不过不管怎样,我还是建议遵守使用 C++ 标准的编辑器。最简单的方式是使用 VSCode,本身是免费的,IDE 更轻量,虽然需要配置,但是在网上搜索一下,教程很多。


加油!:)

0
1
慕妹2184772
谢谢老师的回答!我在另一个文件MaxHeap中已经使用过NULL了,并没有问题,然而 我新创建的这个类就报这个错,感觉真是奇怪 !不过用nullptr就不报错了。
2019-12-06
共1条回复

算法与数据结构(C++版) 面试/评级的算法复习技能包

课程专为:短时间内应对面试、升职测评等艰巨任务打造

11187 学习 · 1614 问题

查看课程