Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

Wyciąganie adresu zmiennej.

Ostatnio zmodyfikowano 2009-05-04 21:27
Autor Wiadomość
DejaVu
» 2009-03-22 22:42:30
Twój kod się nie kompiluje.
P-4954
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]
P-4955
pekfos
» 2009-03-23 17:04:28
C/C++
#include <iostream>
class CFoo {
    int operator &() const volatile;
};
int main()
{
    CFoo * foo = new CFoo;
    std::cout << foo;
    return 0;
}
może być?
P-4967
GoldWolf
» 2009-05-04 19:52:21
No i wszystko jasne i czytelne, proszę zamknąć.
P-6455
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:
C/C++
#include <iostream>
class CFoo {
    int operator &() const volatile;
};
int main()
{
    CFoo foo;
    std::cout << & foo; //w ten sposób nie da rady
}
Można z kodem robić WSZYSTKO, poza zmianą czegokolwiek w klasie CFoo i zmiennej foo. Aha - rozwiązanie oczywiście istnieje ;).
P-18793
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.
P-18794
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.
P-18795
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.
P-18800
« 1 » 2
  Strona 1 z 2 Następna strona