Форум программистов, компьютерный форум CyberForum.ru

Что получится из кода - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ написать программу перевода введенного символа http://www.cyberforum.ru/cpp-beginners/thread815600.html
написать программу перевода введенного символа от a до f в верхний регистр, а другие символы заменять на Z
C++ Написать программу проверки попадания введенного числа в диапазон написать программу проверки попадания введенного числа в диапазон от -6 до -2 http://www.cyberforum.ru/cpp-beginners/thread815592.html
2 символа s2 последние и средние 3 символа s1 - соединить C++
Помогите пожалуйста! Ввести строки s1 и s2. Последние 2 символа s2 и средние 3 символа s1 - соединить. В полученной строке посчитать количество "1". Выводить на екран монитора: -введенные строки -Промежуточные результаты -Конечные результаты Взять во внимание такие ситуации: - Один из заданных строк(или все строки) могут быть пустыми
C++ Как изменить размер главного окна в visual studio 2005?
Как изменить размер главного окна в visual studio 2005?
C++ Разработать программу «Численное интегрирование» http://www.cyberforum.ru/cpp-beginners/thread815552.html
Разработать программу «Численное интегрирование» различными методами: 1) по формуле трапеций; 2) по формуле Гаусса; 3) по формуле Чебышева помогите пожалуйста решить. за ранее благодарю
C++ Хранение данных У меня есть программа, которая создает, удаляет и показывает список клиентов банка. Подскажите, пожалуйста, что мне нужно дописать в код программы, что бы обеспечить хранение информации в файле(если можно, то в текстовом и бинарном формате) подробнее

Показать сообщение отдельно
Kastaneda
Форумчанин
Эксперт С++
4479 / 2841 / 227
Регистрация: 12.12.2009
Сообщений: 7,224
Записей в блоге: 1
Завершенные тесты: 1
22.03.2013, 18:28     Что получится из кода
10ый код интересный.
Цитата Сообщение от igor001 Посмотреть сообщение
10) точно не знаю)) но, возможно, если я не ошибаюсь, будет вызвана виртуальная ф-ция класса а f(int) { cout<<"a int"; }
будет b::f(char*). Прикол в том, что если изменить аргумент в b::f(char*) на int, то опять же будет вызвана она, т.е. b::f(int).
Тут рарешение имен работает так: сначала ищется функия в самом классе, если не найдена, то ищется в базовом. Если в классе есть 2 функции с подходящей сигнатурой, то в дело вступает преобразование типов (если надо). Если в классе есть только одна функция с подходящей (после преобразования типа) сигнатурой, то выбирается она, даже если в базовом классе есть функция с точно подходящей сигнатурой (т.е. без преобразования типа).

Вот пример
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
class a {
public:
    virtual void f(int) { cout<<"a int" << std::endl; }
    virtual void f(const char*) { cout<<"a const char*"<< std::endl; }
    virtual void f(bool) { cout<<"a bool"<< std::endl; }
};
 
class b : public a {
public:
    virtual void f(bool) { cout<<"b bool"<< std::endl; }
};
 
int main () {
    b* o = new b;
    o->f("asfd");
    return 0;
}
несмотря на то, что в классе а есть подходящая функция, вызовется b::f(bool), т.к. она подошла после преобразования const char* в bool.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru