我的任务是从二叉树派生的二进制搜索树,在我的驱动程序中,这就是我创建BST对象的方式。但我有点困惑,因为我知道必须有一个构造函数,但是在我的赋值中没有它实际上要求派生类的构造函数。
int main() {
int x = 0;
int n = 0;
int len = 0;
int total = 0;
int seed = 0;
bool y;
cin >> n;
vector<int> v;
binSTree<int> t;
我很难使用这些“pre”和“code”标签,向量实际上是vector<int> v;
,树实际上是binSTree<int> t;
周围的符号小于和大于当然。
我的程序中的错误如下:
In file included from prog6.cc:2:
binSTree.h:1:9: error: macro names must be identifiers
prog6.cc: In function ‘int main()’:
prog6.cc:16: error: ‘binSTree’ was not declared in this scope
答案 0 :(得分:1)
如果基类是默认构造的,并且派生类没有对基类构造函数进行显式调用,则编译器会在调用派生类构造函数之前插入对默认基类构造函数的调用。
但这与您遇到的错误无关,即:
In file included from prog6.cc:2:
binSTree.h:1:9: error: macro names must be identifiers
请记住,始终 总是 查看编译器产生的第一个错误,而不是底部的错误。这意味着你在binSTree.h
的某个位置,在前几行,类似
#define ...
这些点是无效的。