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 更轻量,虽然需要配置,但是在网上搜索一下,教程很多。
加油!:)
012019-12-06
相似问题