一个类的对象作为另一个类的方法的返回类型

时间:2013-06-09 19:05:00

标签: c++ class

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

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;    
    };

上面是相关的部分而不是整个代码。我正在尝试将最初是结构的Node更改为class.And我不知道该怎么办..

1 个答案:

答案 0 :(得分:1)

class Node
{...} Node;

在这里,您要创建名为Node的{​​{1}}实例。然后在函数原型/定义中使用Node,就像它是一个类型一样,当它不是时。也许你的意思是Node班级:

typedef

但是你在C ++中甚至不需要typedef class Node {...} Node; ,因为类名不需要typedefclass的前缀。只需使用班级名称:

struct