2012-03-27 5 views
1

Ich versuche, ein Mitglied in einer Klasse von einer anderen Klasse zu haben: ich eine Blog Klasse und Freunden Klasse und eine blog_pointer Klasse ich den Code unten versucht:deklariert einen classmember in einer anderen

friends :: blog_pointer * blogFriend; 

ist Gibt es etwas wie Prototyp in Funktion für Klassen? Compiler außer einem Konstruktor oder Destruktor.

+1

Ich finde es schwer zu Finde heraus, was dein Problem ist. Bitte poste die Definitionen von blog, freunde und blog_pointer. Veröffentlichen Sie auch alle Fehlermeldungen, die Sie erhalten haben, als Sie das versucht haben. – wolfgang

Antwort

2

können Sie zukunfts declare oder "Prototyp" Klassen wie folgt aus:

class B; 

class A { 
    public: 
    B b; 
}; 

class B { 
    public: 
    A a; 
}; 
0

Freund Schlüsselwort gewährt nur den Zugriff auf die anderen Klassen private Datenmitglieder. Sie können keine weiteren Mitglieder einer anderen Klasse in einer Freundesklasse deklarieren.

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

}

mit dem Freund Schlüsselwort können Sie auf a.side in der Konvertierungsmethode zugreifen.

Aber ich bin nicht wirklich sicher, was Sie fragen? Wenn Sie nur eine andere Klasse verwenden möchten, können Sie Folgendes tun.

NextSquare.h

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

können Sie jetzt Rectangle Daten in NextSquare Zugriff

Verwandte Themen