错误:请求"cur"中的成员"成员",该成员属于非类类型节点<int>* 二叉树
error: request for member `member` in `cur`, which is of non-class type node<int>* Binary Tree
我有一个二叉树
template<class item_type>
struct node{
item_type x;
node<item_type> *left;
node<item_type> *right;
};
template<class item_type, class param>
class Tree{
node<item_type> *root;
public:
//functions
在我使用的一些函数中node<item_type> *cur = root;
并通过CCD_ 2或CCD_这给我带来了一个错误:
错误:请求成员Get_Height/cur/中的一个函数,该函数为非类类型节点*二进制树
template<class item_type, class param>
int Tree<item_type, param>::Get_Height()
{
node<item_type> *cur = root;
while(cur->left!=NULL || cur->right!=NULL)
{
if(cur==NULL)
return 0;
return max(cur->left.Get_Height(), cur->right.Get_Height())+1;
}
}
我很确定左边的是node类型根据错误,该函数似乎取了一个指向节点的指针,而不是实际的树,所以这应该不是问题。
cur
的类型为struct node *
,它是一个指针。
所以我怀疑它应该是cur->left != NULL
,而且left
也是一个指针,所以它应该是
return max(cur->left->Get_Height(), cur->right->Get_Height())+1;
您的代码中存在严重错误,struct node
中没有Get_Height()
成员。
相关文章:
- 根据模板类型选择类模板的成员类型?
- 函数模板签名中忽略的成员类型def 的访问说明符
- 在C++如何从数组中提取成员并返回成员类型的数组?
- C++从成员类型中扣除类型的功能模板?
- 无法初始化以 std::byte 作为成员类型的位字段
- 构造函数可以更改默认成员类型吗?
- 使用相同方法但不同成员类型构建类的最佳方法
- 允许通过指向方法的成员参数的指针来推断模板参数所指向的成员类型
- 使用 std::条件根据模板参数选择成员类型
- CRTP:如何推断要用作返回类型的成员类型?
- 对成员类型的成员方法使用 std::result_of<>
- C :可以从类及其受保护的成员类型继承可以继承吗?
- 如何在不指定不必要的模板参数的情况下使用模板类的成员类型
- 基类数据成员类型取决于派生类
- C 多态性:允许模棱两可的成员类型
- 使用使用成员类型别名的构造函数来推论类模板参数
- 获取与在模板参数中传递的函数成员类型相同的类
- 如果静态成员未初始化并且成员类型是类本身,该怎么办?
- boost::bind 无法绑定到纯虚拟基类中定义的非静态函数模板成员类型
- 将联合强制转换为其成员类型之一