Keresés

Új hozzászólás Aktív témák

  • Miracle

    senior tag

    válasz return.value #782 üzenetére

    csinaltam egy egyszeru kis peldaprogramot:


    #include <iostream>
    using std::cout;

    struct foo
    {

    public:
    void f(){ cout << ''foo :: f\n'';}
    virtual void g(){ cout << ''foo :: g\n'';}
    };

    struct bar : public foo
    {

    public:
    void f(){ cout << ''bar :: f\n'';}
    virtual void g(){ cout << ''bar :: g\n'';}
    };

    int main()
    {
    foo *pf = new foo();
    bar *pb = new bar();
    foo *pff = new bar();

    cout << ''pf -> f '';
    pf -> f();
    cout << ''pf -> g '';
    pf -> g();

    cout << ''pb -> f '';
    pb -> f();
    cout << ''pb -> g '';
    pb -> g();

    cout << ''pff -> f '';
    pff -> f();
    cout << ''pff -> g '';
    pff -> g();

    delete pf;
    delete pb;
    delete pff;

    return 0;
    }



    leforditottam ugy is, hogy a foo es a bar struct ill. class de a futasi eredmeny valtozatlan:

    bash-2.05b$ g++ -ansi -pedantic -Wall p1.cpp
    bash-2.05b$ ./a.out
    pf -> f foo :: f
    pf -> g foo :: g
    pb -> f bar :: f
    pb -> g bar :: g
    pff -> f foo :: f
    pff -> g bar :: g

    tehat igy elsore nem latok semmi kulonbseget (szerintem nincs is ;] )
    esetleg tudsz valami peldat?

    értelmező késziszótár :: rekurzió --> lásd : rekurzió

Új hozzászólás Aktív témák