2012-03-27 12 views
1

でclassmemberを宣言クラスのための関数のプロトタイプのようなものはありますか? コンストラクタまたはデストラクタ以外のコンパイラ。私は別のクラスからクラスのメンバを持ってしようとしています別の

+1

を私がすることは難しい見つけますあなたの問題が何であるか把握してください。ブログ、友人、blog_pointerの定義を投稿してください。また、あなたが試したときに受け取ったエラーメッセージを投稿してください。 – wolfgang

答えて

2

で四角形のデータにアクセスすることができますあなたは将来を宣言することができるか、このような "プロトタイプ" クラス:

class B; 

class A { 
    public: 
    B b; 
}; 

class B { 
    public: 
    A a; 
}; 
0

friendキーワードは、他のクラスのプライベートデータメンバーにのみアクセスできます。他のクラスのメンバーをフレンドクラス内で宣言することはできません。

Rectangle.h

class Rectangle { 
    int width, height; 
public: 
    int area() 
    {return (width * height);} 
    void convert (CSquare a); 
    }; 

Square.h

class Square { 
private: 
    int side; 
public: 
    void set_side (int a) 
    {side=a;} 
friend class Rectangle; 
}; 

Rectangle.cc

void Rectangle::convert (Square a) { 
width = a.side; 
height = a.side; 
} 

main.cc

int main() { 
Square sqr; 
Rectangle rect; 
sqr.set_side(4); 
rect.convert(sqr); 

}

あなたはconvertメソッドでa.sideにアクセスできます。

しかし、あなたが何を求めているのかは分かりません。別のクラスを使用したいだけなら、次のことができます。

NextSquare.h

class NextSquare { 
private: 
    int side; 
public: 
    void set_side (int a) 
    {side=a;} 
friend class Rectangle; 
class Rectangle* aRecInASquare; 
}; 

あなたは今NextSquare

関連する問題