Форум программистов, компьютерный форум 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
быдлокодер
 Аватар для kravam
1512 / 872 / 44
Регистрация: 04.06.2008
Сообщений: 5,271
02.06.2011, 21:48     Как вызвать виртуальную функцию из дочернего класса, если она определена и вызывается в конструкторе РОДИТЕЛЬСКОГО класса?
Ну то есть так: есть родительский и дочерний класс, в родительском определен виртуальная функция и вызывается в его конструкторе (камень преткновения; и не вызывать нельзя). А есть дочерний класс и в нём эта вирутальная функция переопределена. Я создаю объект дочернего класса, он благополучно вызывает конструктор родительского класса и вызывается эта функция, но РОДИТЕЛЬСКИЙ вариант. А мне нужен ДОЧЕРНИЙ. Спасибо кто поможет. Может я где теорию упустил, не знаю.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
#include <windows.h>
#include <iostream>
#include <string>
using namespace std;
 
 
 
//Это вот базовый класс
                         //++++++++++++++++++
//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
class base{
 public:
 
  //А вот в этом конструкторе и будет вызываться виртуальная функция
  base ();         
 
  //Вот эту фунцию я сделал виртуальной
  virtual void f (){cout<< "Вот её текст, его я видеть не хочу!"<< endl;};
 //Это просто деструктор
  ~base () {}         
};
 
base::base () {
 f();
}         
//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
                         //++++++++++++++++++
 
 
//А это вот доченрний класс
                         //++++++++++++++++++
//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
class sin: public base {
 public:
  sin ():base(){};
  ~sin () {};
 
  //Вот виртуальная функция, которую я переопределяю и которую очень хочется вызвать в конструкторе 
  //этого класса
  void f () ;
};
 
 
void sin::f () {
 cout<< "Вот этот текст я хочу увидеть, но не получается"<< endl;
};
//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
                         //++++++++++++++++++
 
 
 
int main() {
 SetConsoleCP(1251);
 SetConsoleOutputCP(1251);
 sin k;
 getchar ();
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 20:40. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru