параметров при обращении к функции и при объявлении функции. При вызове перегруженных функций компилятор должен иметь алгоритм для выбора соответствующей функции. • Использовать точное соответствие, если оно найдено • Проверить поддержку стандартных типов • Проверить стандартные преобразования типов • Проверить преобразования, определяемые пользователем • Использовать соответствие для аргументов, если оно найдено Дружественные ” (friend) функции Опр. Функция, объявленная в производном классе, может иметь доступ только к защищенным (protected) или общим (public) компонентам базового класса. Функция, объявленная вне класса, может иметь доступ только к общим (public) компонентам класса и обращаться к ним по имени, уточненному именем объекта или указателя на объект. Класс может предоставлять особые привилегии определенным внешним функциям или функциям-членам другого класса. Эти функции получили названия дружественных. Если функция или класс объявлены как дружественные данному классу, то такие функции или функции-члены такого класса могут осуществлять непосредственный доступ ко всем нолям класса, для которого они дружественны. Дружественные функции и классы могут осуществлять прямой доступ к закрытым полям класса без использования функций- членов этого класса Чтобы получить доступ к личным компонентам объектов некоторого класса X в функции, не имеющей к ним доступа, эта функция должна быть объявлена дружественной в классе X: class X { friend void Y:: fprv( int, char*); /* Другие компоненты класса X */ } Можно объявить все функции класса Y дружественными в классе X; class Y; class X { friend Y;
RkJQdWJsaXNoZXIy MTExODQxMg==