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;

ここでは、Nodenamedのインスタンスを作成していますNode。次に、関数のプロトタイプ/定義内Nodeで、型であるかのように使用します。多分あなたはtypedefクラスに意味した:

typedef class Node {...} Node;

ただし、クラス名にはortypedefのプレフィックスが必要ないため、C++ では hereも必要ありません。クラス名を使用するだけです:classstruct

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