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

РАБОТА С ВИРТУАЛЬНЫМИ ФУНКЦИЯМИ - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Обработка строк в С++ http://www.cyberforum.ru/cpp-beginners/thread85506.html
Здравствуйте, а можете помочь решить такую задачу на С++, пожалуйста, очень нужно) Дана строка, представляющая предложение. Слова в предложении состоят из маленьких латинских букв. Между словами находится 1 или более пробел. Также после слова, кроме последнего, может следовать запятая ",". За последним словом идет точка ".". Проверить правильность ввода. Вывести все слова: начинающиеся и...
C++ Функция, которая увеличивает на Т секунд время Описать процедуру IncTime (H, M, S, T), которая увеличивает на Т секунд время, заданное в часах Н, минутах М и секундах S (H, M и S- входные и выходные параметры, Т- входной параметр; все параметры целые положительные). Дано время (в часах Н, минутах М, секундах S) и целое число Т. Используя процедуру IncTime, увеличить данное время на Т секунд и вывести новые значения Н, М, S. Помогите... http://www.cyberforum.ru/cpp-beginners/thread85496.html
C++ Оформление ФУНКЦИИ
Дан двумерный массив X. Cформировать одномерный массив Y, для элементов которого выполняется условие: 0<cos(Xij)<корня 3/2. Оформить в виде ФУНКЦИИ. #include<iostream.h> #include<math.h> #include<conio.h> const int n=3; void main ( ) {
C++ Для данных матриц А и В проверить соотношение А*В=Е
Для данных 2х матриц А и В проверить соотношение А*В=Е. (посути матрицы квадратные) Е - единичная матрица, тобиш матрица у которой на главной диагонали единицы (1) а в остальных ячейках нули (0). Нужен именно програмный код, но если можно не откажусь от блоксхемы к этому програмному коду)) Зараннее премного благодарю людей которые окажут помощь в решении))
C++ Просто нужно!!! http://www.cyberforum.ru/cpp-beginners/thread85470.html
Буду краток: необходимо Умножить матрицу на себя транспонированую!!!(без хранения транспонированной) Как в вышмате это сделать я понимаю, а вот на С как это выглядит, не пойму!!! Кто чем может_)))
C++ помогите! Три друга были свидетелями ДТП. Первый заметил, что номер на-рушителя делится на 2, 7 и 11. Второй запомнил, что в записи номера участвуют всего две различные цифры, а третий – что сумма цифр рав-на 30. Определить четырехзначный номер нарушителя вот задача ее надо решить с помощью указателей, помогиет пожалста) подробнее

Показать сообщение отдельно
Genius Ignat
1233 / 771 / 44
Регистрация: 16.09.2009
Сообщений: 2,014
13.01.2010, 23:12     РАБОТА С ВИРТУАЛЬНЫМИ ФУНКЦИЯМИ
Раз у тебя репутация есть, значит напившись программу сам, здесь приведен только пример
показывающий как пользоваться поздним связыванием, полиморфизмом и виртуальными функциями.
Надеюсь,я вам помог.

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
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
#include <iostream.h>
 
 
 
//Асбтрактный класс
 
class Abstract {
private:
 
public:
    virtual void f() = 0;         //чистая вируальная функция реализуется в производных классах
 
 
 
 
};
 
//Производный от базового
class Component1 : public Abstract {
private:
 
public:
    //Реализация функции базового класса
    virtual void f(){cout<<"f is Component1\n"; }        
 
 
 
 
};
//Производный от базового
class Component2 : public Abstract {
private:
 
public:
    //Реализация функции базового класса
    virtual void f(){cout<<"f is Component2\n"; }        
 
 
 
 
};
 
//Производный от базового
class Component3: public Abstract {
private:
 
public:
    //Реализация функции базового класса
    virtual void f(){cout<<"f is Component3 \n"; }        
 
 
 
 
};
 
 
 
 
//Клиент----------------
void main(){
//Массив указателей типа абстракный класс
Abstract* pMas[3] = {NULL};
 
//Создаём компоненты выделяем динамическую память: по объекты производного типа
 Component1 *pobj1  = new  Component1;
 Component2 *pobj2  = new  Component2;
 Component3 *pobj3  = new  Component3;
//-------------------------------------
 
/*Записываем в массив указателей базового типа, адреса производных объектов(компонентов, каждый
комонент имеет свою vtbl, 
*/
pMas[0]=pobj1;  //в указатель попадает адрес динамического объекта с соответствующей его типу vtbl 
pMas[1]=pobj2;  //в указатель попадает адрес динамического объекта с соответствующей его типу vtbl 
pMas[2]=pobj3;  //в указатель попадает адрес динамического объекта с соответствующей его типу vtbl 
 
//Реализуем эффект полиморфизма: смены поведения программы в реальном времени
for(int i=0;i<3;i++)pMas[i]->f();       //вызывается функция соответствующая vtbl компнента: объекта
 
 
//-------------------------------------
//ОСвобождаем память из-под компонентов, через указатели
delete pobj1;
delete pobj2;
delete pobj3;
pobj1 = NULL;
pobj2 = NULL;
pobj3 = NULL;
 
}
//----------------------
 
Текущее время: 14:43. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru