在' * '标记之前预期的构造函数、析构函数或类型转换
expected constructor, destructor, or type conversion before ‘*’ token
编译器显示
error: expected constructor, destructor, or type conversion before ‘*’ token"
并指向.cpp中的这一行:
Node * Tree::buildTree(Node *myNode, int h) {
我猜它可能是关于typedef
的东西,但不是很确定。问题是什么呢?
. h文件:
#ifndef TREE_H
#define TREE_H
class Tree {
public:
Tree();
Tree(Tree const & other);
~Tree();
Tree const & operator=(Tree const & other);
private:
class Node {
public:
Node() {
data = 0;
};
Node(Node const & other) {
_copy(other);
};
~Node() {};
Node const & operator=(Node const & other) {
if (this != &other)
_copy(other);
return *this;
};
Node *left;
Node *right;
int data;
private:
void _copy(Node const & other) {
data = other.data;
left = other.left;
right = other.right;
};
};
Node *root;
Node * buildTree(Node *myNode, int h);
};
. cpp文件:
...
Node * Tree::buildTree(Node *myNode, int h) {
if (h == 0)
return NULL;
myNode = new Node();
myNode->left = buildTree(myNode->left, h - 1);
myNode->right = buildTree(myNode->right, h - 1);
return myNode;
}
...
Node
在Tree
内部声明,因此需要
Tree::Node * Tree::buildTree(Node *myNode, int h)
相关文章:
- 构造函数和转换运算符之间的重载解析
- C++无效的函数类型转换
- 元组尺寸默认构造函数及其转换为std :: size_t
- C++ 03 类模板 这是转换构造函数还是转换运算符?以及如何声明解决此问题的方法
- 是否可以将一种函数类型转换为另一种采用相同参数但返回类型不同的函数类型
- 调用构造函数或转换
- 需要构造函数/析构函数/类型转换错误
- 使用构造函数自动转换
- static_cast转换构造函数与转换运算符
- 构造函数和转换
- C++ - 打印地图<结构,结构,构造函数>类型
- 错误:从"<未解析的重载函数类型>"转换为非标量类型
- 有没有一种干净的方法可以将 C# 'params object[]' 构造函数参数转换为C++构造函数?
- 混淆了复制构造函数和转换构造函数
- C++11:在按值传递参数初始化时转换构造函数和转换函数之间的歧义
- 继承构造函数+非默认构造函数类型的类内初始化失败
- 特征日志和exp函数类型转换错误
- c++ python构造函数类型错误(可能的命名空间问题)
- 构造函数的转换不适用于运算符重载
- 具有构造函数类型转换和转换操作符的转换序列