Témakör: Fejtörők


20.1 . megoldással  Virtuális öröklés trükkösen (csak fanatikusoknak)

Webmester felhasználó Milyen más programozási nyelvekben (pl: C#, Java) használt nyelvi elemet valósít meg MyClass a Blocker osztály segítségével?


 

class MyClass;

 

class Blocker {

      private:

            Blocker() {

            }

 

            friend class MyClass;

};

 

 

class MyClass: public virtual Blocker {

      // tagfuggvenyek es tagvaltozok...

};

 



2008.02.08. |  Permalink  |  Hozzászólások: 0  |  Tárgyszavak: példa szintje


20.2 . megoldással  Futásidejű hiba egyszerű öröklésnél

Webmester felhasználó Mi okoz futásidejű hibát az alábbi programban? (ha nincs benne véletlen elírás, vagy más hiba)
Tipp: ha nem megy, távolítsd el az első sort a kódból, és a fordító segít a hiba megtalálásában.

 

#pragma warning(disable: 4102)

#include <iostream>

using namespace std;

 

class Base {

      public:

            Base() {

            }

 

            virtual void func() {

                  cout << "Base func called!\n";

            }

};

 

 

class Derived : public Base {

      public:

            Derived() {

            }

 

            virtual void func() {

                  Base:func();

                  cout << "Derived func called!\n";

            }

};

 

 

int main() {

      Derived d;

      d.func();

}

 



2008.02.08. |  Permalink  |  Hozzászólások: 0  |  Tárgyszavak: példa szintje


20.3 . megoldással  Kivételkezelés trükkösen

Webmester felhasználó

Milyen feladatot lát el az alábbi függvény?

 

void Func(int n)
{
 if (n <= 1) 
   throw 1;
 
 try {
      Func(n - 1);
     }
 catch (int n1) {
                 try {
                      Func(n - 2);
                     }
                 catch (int n2) {
                                 throw n1 + n2;
                                }
                }
}

 



2008.02.08. |  Permalink  |  Hozzászólások: 0  |  Tárgyszavak: példa szintje


20.4 . megoldással  Konstans tagfüggvények

Webmester felhasználó "A const kulcsszó tagfüggvények esetében is használható, a fejlécének végére írva. A const jelentése ez esetben az, hogy az adott tagfüggvény az objektum állapotát, vagyis annak tagváltozóit nem változtatja meg." (Benedek-Levendovszky: Szoftverfejlesztés C++ nyelven)

Cáfoljuk meg az előbbi állítást azzal, hogy írunk egy olyan konstans tagfüggvényt, amely megváltoztatja a hívó objektum tagváltozóit.


2008.05.13. |  Permalink  |  Hozzászólások: 0  |  Tárgyszavak: példa szintje


20.5 . megoldással  Absztrakt osztály?

Webmester felhasználó Írjunk egy olyan osztályt, amelyet közvetlenül nem lehet példányosítani, de ősosztályként szerepelhet. Tegyük mindezt úgy, hogy nem használunk tisztán virtuálist tagfüggvényeket!

2008.05.13. |  Permalink  |  Hozzászólások: 0  |  Tárgyszavak: példa szintje