1

有人可以给我一个示例代码,其中我有一个类对象,它是另一个类的方法的返回类型吗?我尝试通过简单地在方法前面提及类名来做到这一点,但出现错误说不是有效类型。 ..

typedef struct Point
{
   int x,y;

}Point;

class Node

{
public: 
    int posX;
    int posY;
    int width;
    int height;
    Node *child[4];         
        Point array[100];

}Node;



class quadtree
    {
        public:
        void setnode(Node *xy,int x,int y,int w,int h);
        Node buildtree(Node* n);
        void printtree(Node* n,int depth);      
        void deletetree(Node* n);
        Node *BuildNode(Node* n, Node  *nParent, int index);        
        static int pointArray_size(Node *n);
        //Node *rootNode ;      
        int randn();        
                quadtree();
        ~quadtree();

    friend class Node;    
    };

以上是相关部分而不是整个代码。我正在尝试将原本是结构的节点更改为类。而这我不知道该怎么做..

4

1 回答 1

1
class Node
{...} Node;

在这里,您正在创建一个Node名为的实例Node。然后在你的函数原型/定义中,你Node就像它是一种类型一样使用它,而实际上它不是。也许你的意思是typedef对班级:

typedef class Node {...} Node;

但是在 C++ 中你甚至不需要 a typedefhere,因为类名不需要classor的前缀struct。只需使用类名:

class Name {...};
于 2013-06-09T19:13:56.147 回答