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

Как вызвать виртуальную функцию из дочернего класса, если она определена и вызывается в конструкторе РОДИТЕЛЬСКОГО класса? - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Сформировать массив из индексов http://www.cyberforum.ru/cpp-beginners/thread311227.html
Дан числовой массив A. Сформировать массив B, элементы которого равны индексам отрицательных элементов массива A.
C++ Функция для вызова нового окна. Здравствуйте. Есть программа на C++ написана в консольном варианте. Мне нужно привязать это консольное окно к кнопке - то есть , я создаю Windows Form - рисую кнопки и нужна функция которая будет вызывать новое окно с моим консольным приложением. Надеюсь понятно объяснил))) Помогите пожалуйста! Добавлено через 30 минут удалите пжл. http://www.cyberforum.ru/cpp-beginners/thread311221.html
извлечение флешки C++
господа,а как можно програмно сделать безопасное извлечение флешки?
C++ Копирование данных из файла в файл
Здравствуйте! Нужно организовать копирование данных из одного файла в другой в бинарном режиме. При выполнении программы в выходной файл вместо нужного текста копируются неизвестные символы. В чём может быть ошибка? // Копирование файла в бинарном режиме #include <iostream> #include <fstream> #include <cstdlib> #include <string>
C++ Структура и работа с файлом http://www.cyberforum.ru/cpp-beginners/thread311199.html
Здравствуйте! Посмотрите в чем моя ошибка, пожалуйста Дан файл f, содержащий сведения о книгах. Сведения о каждой из книг-это фамилия автора,название и год издания. Найти название книг данного автора,изданных начииная с 1960 года. И второй вопрос, как должна быть написана инфа в самом файле #include <stdio.h> #include <iostream> #include <stdlib.h> #include <conio.h> using namespace...
C++ MySQL Для диплома! нужна красивая теория языком программиста Почему MySQL лучше остальных программ? подробнее

Показать сообщение отдельно
kravam
быдлокодер
1693 / 880 / 44
Регистрация: 04.06.2008
Сообщений: 5,438
03.06.2011, 01:20  [ТС]     Как вызвать виртуальную функцию из дочернего класса, если она определена и вызывается в конструкторе РОДИТЕЛЬСКОГО класса?
Не помогает, просто создаётся объект типа sin, соответственно вызывается конструктор родительского объекта, и f (), определённая в родительском же объекте. А мне надо чтобы та функция вызывалась, что переопределена в дочернем объекте.

Добавлено через 13 минут
Решилось так: в конструктор дочернего класса я вставил вызов функции f, а из конструктора базового класса этот конструктор убрал.
C++
1
2
3
4
5
6
7
base::base () {
 //f();
}         
//....................................
  sin ():base(){
   f ();
  };
Решилось? Нет. Дело в том, что если я для каждого дочернего класса буду определять алгоритм вызова f (), какой смысл в базовом классе? Он не нужен. Тогда уж проще сразу объявить два или сколько-то там дочерних классов, каждыйкак САМОМСТОЯТЕЛЬНУЮ сущность и в конструкторе каждого прописать подобный вызов.
C++
1
2
3
4
5
6
7
  sin_0 ():base(){
   f ();
  };
//.....................................
  sin_1 ():base(){
   f ();
  };
Только мне непонятно тогда, в чём прикол ООП, если я не могу воспользоваться элементарщиной- полиморфизмом? Убирать тогда родительско-дочернюю концепцию и возвращаться на круги своя. Жаль. Очень хочу быть опровергнутым.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru