sobota, 7 sierpnia 2010

Zagadka - zmiana wartości składnika stałego obiektu.

No dobrze, tym razem napiszę coś sensowniejszego, bardziej technicznego. Ewidentnie 'tricky'.
Będzie to zagadka. Zagadka z serii tych, które są kompletnie nieprzydatne w codziennej pracy. Jednak  niektórych nerdów (w tym mnie) takie zabawy bawią. Dotyczyć będzie przewspaniałego C++.

Mamy sobie klasę o nazwie TClass, która posiada prywatny składnik a, będący liczbą całkowitą. Mamy też STAŁY obiekt tej klasy.
Zaprojektuj metodę change() (bądź wymyśl jakiś bardziej szalony sposób), po której wykonaniu wartość składnika 'a' tegoż stałego obiektu zmieni się. Czyli po prostu zmień wartość składnika obiektu, który jest const.

Miłej zabawy.

2 komentarze:

  1. void change() const
    {
    *const_cast (&a) = 888;
    }

    OdpowiedzUsuń
  2. Ups, wycieło mi <int *> oczywiście.

    void change() const
    {
        *const_cast<int *> (&a) = 888;
    }

    OdpowiedzUsuń