Wyciąganie adresu zmiennej.
Ostatnio zmodyfikowano 2009-05-04 21:27
DejaVu |
» 2009-03-22 22:42:30 Twój kod się nie kompiluje. |
|
mceier |
» 2009-03-22 23:18:01 [kod src="c++"] #include <iostream> class CFoo;
const CFoo *adres(CFoo const &f) { return &f; }
class CFoo { int operator&() const volatile; };
int main() { CFoo foo; std::cout << adres(foo); } [/kod] |
|
pekfos |
» 2009-03-23 17:04:28 #include <iostream> class CFoo { int operator &() const volatile; }; int main() { CFoo * foo = new CFoo; std::cout << foo; return 0; } może być? |
|
GoldWolf |
» 2009-05-04 19:52:21 No i wszystko jasne i czytelne, proszę zamknąć. |
|
manfred Temat założony przez niniejszego użytkownika |
Wyciąganie adresu zmiennej. » 2009-03-22 22:37:43 Postanowiłem, że i ja zrobię konkursik. Zadanie: Wypisać adres zmiennej foo nie zmieniając definicji klasy CFoo ani typu zmiennej. Kod do zadania: #include <iostream> class CFoo { int operator &() const volatile; }; int main() { CFoo foo; std::cout << & foo; } Można z kodem robić WSZYSTKO, poza zmianą czegokolwiek w klasie CFoo i zmiennej foo. Aha - rozwiązanie oczywiście istnieje ;). |
|
manfred Temat założony przez niniejszego użytkownika |
» 2009-03-22 22:46:59 Właśnie o to chodzi... Trzeba zmienić to tak, żeby się skompilowało i wypisało adres. |
|
manfred Temat założony przez niniejszego użytkownika |
» 2009-03-23 07:57:41 Tak. Chociaż mówiłem o nieruszaniu klasy, a ty dałeś jej forward-decl. |
|
manfred Temat założony przez niniejszego użytkownika |
» 2009-03-23 18:41:30 Zmieniłeś definicję zmiennej, a jawnie napisałem, że nie wolno. |
|
« 1 » 2 |