我有一个在我的 C++ 程序中命名的树结构类SuperTree,我希望它有一个实例方法,该方法返回一个struct或pair其中一个属性是指向SuperTree对象的指针。
insert我的类中的函数SuperTree应该返回一个Res结构,其中包含对另一个SuperTree对象的引用和一个布尔值。但是,如果我尝试编译代码,则会收到以下错误消息:
supertree.cpp:24: error: ISO C++ forbids declaration of ‘Res’ with no type
我也不能Res在我的课之前定义结构,SuperTree因为它也不会编译。也许这是 C++ 泛型类型或其他东西(我还不知道如何使用)的情况。
所以这是我的尝试:
#include <cstdio>
#include <utility>
using namespace std;
class AVL {
public:
int key;
int bf;
AVL* leftChild;
AVL* rightChild;
AVL()
{
}
~AVL() {};
AVL rotateLeft();
AVL rotateRight();
Res* insert(int value);
int remove();
int size();
};
// typedef pair<AVL, bool> result;
typedef struct result {
struct AVL *avl;
bool changed;
} Res;
请注意,pair定义已被注释掉,但是你们也可以为他们回答,我很高兴!
就是这样,我怎样才能在我的类中同时拥有SuperTree类和Res结构以及Res指针返回函数SuperTree?
欢迎任何帮助。谢谢!