Base::func в теле потомка.">
Следите за новинками
в нашем Telegram канале. Жми, чтобы подписаться:)
498 of 696 menu
◀ ▶

Поднятие скрытой функции в C++

Новый метод в потомке с тем же именем скрывает все одноименные перегрузки базы, даже если сигнатуры различаются.

Запись using Base::func в теле потомка поднимает скрытые перегрузки обратно рядом с локальной версией. Запишем базу с двумя перегрузками, добавим строковую версию в потомке и вызовем все три варианта:

┌pPathX="main.cpp" #include <iostream> #include <string> class Logger { public: void emit(int code) { std::cout << code << "\n"; } void emit(double value) { std::cout << value << "\n"; } }; class FileLogger : public Logger { public: using Logger::emit; void emit(const std::string& text) { std::cout << text << "\n"; } }; int main() { FileLogger log; log.emit(7); log.emit(0.5); log.emit("ok"); return 0; }

В Scale задайте перегрузки set для int и double. В FineScale добавьте set для float, поднимите базовые через using и вызовите все три.

← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить