Hallo zusammen,
ich habe folgende Aufgabe aus Stroustrup "Programming Language C++" gemacht:
"Define two classes, each with a static member,so that the construction of each static member involves a reference to the other.
Where might such constructs appear in real code?
How can these classes be modified to eliminate the order dependence in the constructors?"
Meine Lösung sah wie folgt aus:
Nun bekam ich bei der Korrektur folgenden Kommentar:
Offensichtlich bin ich mit meinem Versuch, Dir die Bedeutung der Werte von Instanzvariablen
für diese Aufgabe zu erklären, gründlich gescheitert: Die Klassen haben keine Instanzvariablen.
Ich versteh jetzt nur noch Bahnhof.. Kann mir bitte jemand sagen, was genau gewollt wird?Vertseh ich die Aufgabe falsch?
ich habe folgende Aufgabe aus Stroustrup "Programming Language C++" gemacht:
"Define two classes, each with a static member,so that the construction of each static member involves a reference to the other.
Where might such constructs appear in real code?
How can these classes be modified to eliminate the order dependence in the constructors?"
Meine Lösung sah wie folgt aus:
C++:
#include <iostream>
using namespace std;
struct MemberB;
struct MemberA
{
MemberB& x;
MemberA();
};
struct MemberB
{
MemberA& x;
MemberB();
};
class ClassA
{
public:
static MemberA x;
};
class ClassB
{
public:
static MemberB x;
};
MemberA::MemberA() : x(ClassB::x)
{
cout << "Call MemberA constructor" << endl;
}
MemberB::MemberB() : x(ClassA::x)
{
cout << "Call MemberB constructor" << endl;
}
MemberA ClassA::x;
MemberB ClassB::x;
int main()
{
}
Nun bekam ich bei der Korrektur folgenden Kommentar:
Offensichtlich bin ich mit meinem Versuch, Dir die Bedeutung der Werte von Instanzvariablen
für diese Aufgabe zu erklären, gründlich gescheitert: Die Klassen haben keine Instanzvariablen.
Ich versteh jetzt nur noch Bahnhof.. Kann mir bitte jemand sagen, was genau gewollt wird?Vertseh ich die Aufgabe falsch?