C++: Vill deklarera klasser i "onarturlig föld"?
Postat: 18 nov 2011, 02:15
Har två små problem jag behöver hjälp med. Det första problemet är att komma på lämpligt ämne/subject för detta inlägg.
Det andra är att jag vill kunna skriva kod i stil med:
Ovanståeden kod ger i gcc felmedelandena:

Det andra är att jag vill kunna skriva kod i stil med:
Kod: Markera allt
#include <iostream>
using namespace std;
class A {
public:
void DoSomething() {
test.DoSomething();
}
B test;
};
class B {
public:
void DoSomething() {
cout << "Hello from B" << endl;
}
};
int main () {
A tmp;
tmp.DoSomething();
return 0;
}
Om man deklarerar klassen B före A så går koden att kompilera, men det går ej att tillämpa den tekniken på det projekt jag (försöker att) jobbar på.terminalen säger följande skrev:main.cpp:11:2: fel: "B" är inte namnet på en typ
main.cpp: I medlemsfunktion "void A::DoSomething()":
main.cpp:8:4: fel: "test" deklarerades inte i detta definitionsområde
Kod: Markera allt
#include <iostream>
using namespace std;
class B {
public:
void DoSomething() {
cout << "Hello from B" << endl;
}
};
class A {
public:
void DoSomething() {
test.DoSomething();
}
B test;
};
int main () {
A tmp;
tmp.DoSomething();
return 0;
}