krystian123456 Temat założony przez niniejszego użytkownika |
Błąd kompilacji: Wykorzystanie niezdefiniowanego przez użytkownika typu "Dwa" » 2021-08-25 09:03:32 Czemu poniższy program daje błąd ,,wykorzystanie niezdefiniowanego przez użytkownika typu "Dwa" '' ? class Dwa; class Jeden { public: string g, m; static void about( Dwa * m, string text1, string text2 ) { m->z = text1; m->d = text2; } };
class Dwa { public: string z, d; void shha() { Jeden::about( this, "masro", "flono" ); } void shw() { cout << z << " " << d << endl; } };
int main() { Dwa x; x.shha(); x.shw(); return 0; }
|
|
DejaVu |
» 2021-08-25 09:35:45 Błąd występuje, ponieważ w implementacji metody 'about' używasz pól klasy 'Dwa', ale kompilator nie zna jeszcze jej opisu, ponieważ jest ona zdefiniowana później niż jej użycie. Rozwiązanie: class Dwa; class Jeden { public: string g, m; static void about( Dwa * m, string text1, string text2 ); };
class Dwa { public: string z, d; void shha() { Jeden::about( this, "masro", "flono" ); } void shw() { cout << z << " " << d << endl; } };
void Jeden::about( Dwa * m, string text1, string text2 ) { m->z = text1; m->d = text2; }
int main() { Dwa x; x.shha(); x.shw(); return 0; }
|
|
krystian123456 Temat założony przez niniejszego użytkownika |
» 2021-08-25 09:44:28 Dziękuje, też myślałem że w tym jest błąd ale myślałem że dodanie na początku class Dwa; rozwiąże problem |
|
DejaVu |
» 2021-08-25 09:48:41 Dodanie class Dwa; umożliwia Ci tworzenie wskaźników na ten typ, ale nie możesz tego typu używać dopóki nie wystąpi pełny opis tej klasy. |
|
krystian123456 Temat założony przez niniejszego użytkownika |
» 2021-08-25 10:01:32 Po uruchomieniu tego kodu wyskakuje mi błąd : ,,nie można określić klasy magazynu w tym miejscu" oraz ,, „Jeden::about”: „static” nie powinien zostać użyty w funkcji składowej zdefiniowanej w zakresie plik" static void Jeden::about( Dwa * m, string text1, string text2 ) { m->z = text1; m->d = text2; }
|
|
DejaVu |
» 2021-08-25 10:03:50 Poprawiłem kod. |
|
krystian123456 Temat założony przez niniejszego użytkownika |
» 2021-08-25 10:04:44 Teraz działa |
|
« 1 » |