Jak zgrabnie przenosić między obiektami różnoklasowymi
Ostatnio zmodyfikowano 2011-01-16 19:02
jsc Temat założony przez niniejszego użytkownika |
» 2011-01-14 18:40:51 Sorry, ale muszę trochę dalej drążyć temat, ponieważ przy zastosowaniu kodu: #include <iostream>
using namespace std;
class CDane { public: char dane; void wezDane() { dane = '7'; } };
class CUzywajka { private: void powtorz( CDane & cos ) { cout << cos.dane << endl; } public: void wczytaj( CDane & cos ) { cout << cos.dane << endl; } void pokaz() { void powtorz( CDane & cos ); } };
int main() { CDane jakiesDane; CUzywajka u; jakiesDane.wezDane(); u.wczytaj( jakiesDane ); u.pokaz(); return 0; }
pojawia się: 7
Komunikaty code:blocksa
Wygląda na to, że jakoś wartość cos.dane nie dociera do funkcji powtorz (). |
|
jsc Temat założony przez niniejszego użytkownika |
» 2011-01-15 00:11:14 Udało się mi znaleźć błąd: void pokaz() { void powtorz( CDane & cos ); }
void powoduje wywołanie funkcji. |
|
malan |
» 2011-01-15 00:51:29 void powoduje wywołanie funkcji. |
Widzisz- void potrafi, a Ty nie... |
|
jsc Temat założony przez niniejszego użytkownika |
» 2011-01-15 01:09:56 void powoduje wywołanie funkcji. |
Rzeczywiście błąd chodziło, że blokuje to wywołanie. |
|
malan |
» 2011-01-15 01:33:05 Ale wredny ten void . Trzeba napisać do tych od c++0x, żeby z go nie uwzględnili w nowym standardzie i wywalili na zbity pysk! Co on sobie myśli?! Że może tak bezczelnie blokować?! Na stos z nim! /edit: Tak na poważnie. To TY "blokujesz" (cokolwiek miałeś na myśli mówiąc to). Źle wywołujesz tą metodę! |
|
jsc Temat założony przez niniejszego użytkownika |
» 2011-01-16 13:18:41 Rzeczywiście przekombinowałem. A chodziło o to, że jak napiszę tak: To wyskakuje błąd: error: expected primary-expression before '&' token w wierszu 35 error: `cos' was not declared in this scope w wierszu 35 warning: unused variable 'cos' w wierszu 35
|
|
DejaVu |
» 2011-01-16 14:06:42 Wywołując metodę piszesz po prostu: klasa.metoda( argument ); , gdzie argument to zmienna lub stała. |
|
jsc Temat założony przez niniejszego użytkownika |
» 2011-01-16 18:27:01 Spróbowałem: void powtorz( CDane & cos ) { cout << cos.dane << endl; }
void pokaz() { CUzywajka.powtorz( cos ); }
I wyskakuje: error: expected unqualified-id before '.' token w wiersz 35
Czyli kompilatorowi nie podoba się kropka. |
|
1 « 2 » 3 |