18c0693f

Устоявшие функции


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

class myClass {

public:

   void mf( double );

   void mf( char, char = '\n' );

   static void mf( int* );

   // ...

};

int main() {

   myClass mc;

   int iobj;

   mc.mf( iobj );  // какая именно функция-член mf()? Неоднозначно

}

В этом фрагменте для вызова mf() из main() есть две устоявшие функции:

void mf( double );

void mf( char, char = '\n' );