С++ для начинающих



         

Наилучшая из устоявших функций - часть 4


   using Base2::log;

   // ...

};

Какие функции входят в множество кандидатов для каждого из следующих вызовов:

MI *pi = new MI;

(a) pi->print();   (c) pi->readOn();   (e) pi->log( num );

(b) pi->debug();   (d) pi->reset(0);   (f) pi->writeOn();

Упражнение 19.10

Дана такая иерархия классов:

class Base {

public:

   operator int();

   operator const char *();

   // ...

};

class Derived : public Base {

public:

   operator double();

   // ...

};

Удастся ли выбрать наилучшую из устоявших функций для каждого из следующих вызовов? Назовите кандидаты, устоявшие функции и преобразования типов аргументов для каждой из них, наилучшую из устоявших (если она есть):

(a) void operate( double );

    void operate( string );

    void operate( const Base & );

    Derived *pd = new Derived;

    operate( *pd );

(b) void calc( int );

    void calc( double );

    void calc( const Derived & );

    Base *pb = new Derived;

    operate( *pb );




Содержание  Назад  Вперед