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

Динамическая списочная структура, содержащая объекты классов, связанных наследованием - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Протестируйте функцию сортировки контейнера http://www.cyberforum.ru/cpp/thread1563232.html
У set контейнера странная сортировка, решил написать функцию которая увеличивала на одну единицу значение вектора. Вектор выступает как "виртуальное целое число". Так как стандартный обход char от 0 до -128 и увеличить переменную со значением -128 приведет что переменная будет равна 0. А сортировка у set контейнера от -128 до 127. Вопрос правильно ли работает моя функция. Я просто не знаю как...
C++ Поиск фигуры на картинке Суть задания: В окне программы рисуется фигура (треугольник или прямоугольник). При нажатии на кнопку "Go", в верхнем левом углу окна программы появляется объект (допустим в виде квдратика) у которого есть направление сканирования (хз как это еще описать). Он должен: 1. Найти фигуру (которую мы нарисовали в начале). 2. Приблизится впритык к фигуре. 3. Полностью обойти фигуру. 4. Выдать... http://www.cyberforum.ru/cpp/thread1563162.html
C++ Ссылка для скачивания visual studio 2010 professional
В интернете постоянно, когда скачиваю visual studio 2010 professional rus выходит при установке образ жесткого диска, но так никогда не было когда скачивала раньше. Старая установка исчезла из-за переустановки винды. Может кто-нибудь поможет мне, скинет ссылку для скачивания нормальной visual studio 2010 professional rus x64bit. мне именно нужна 2010..а не новые 2013, 2015г
Парсинг файлов .dem C++
Приветствую, ребята, в инете что-то не могу найти инфу по этому вопросу, в частности нужна структура файла .dem (это демо контры, халвы и т.п. подобных проектов h2l) Если кто знаком - киньте ссылки пожалуйста :)
C++ Управление памятью другой программы http://www.cyberforum.ru/cpp/thread1561977.html
Добрый день. Необходим постоянно устанавливать значение переменной в другой запущенной программе в 0. Ну это понятно, что значение надо менять в цикле, с задержкой ( Sleep(int) ). Суть не в этом. int speed; HWND hWin; DWORD ProcId; HANDLE hProc; DWORD NBW;
C++ MSVS или MINGW Привет всем. У меня скоро заканчивается пробная версия visual studio и я думаю установить mingw(операционная система Windows). Как mingw? Лучше mcvs? Мне обязательно чтобы отладчик был хороший. Но ещё на хабре читал что mcvs лучше оптииизирует код. Ну вообщем расскажите немного про mingw. подробнее

Показать сообщение отдельно
Opuzer
0 / 0 / 1
Регистрация: 27.03.2014
Сообщений: 12
30.10.2015, 14:39  [ТС]     Динамическая списочная структура, содержащая объекты классов, связанных наследованием
Достаточно - поле структуры сделать не типа базового класса, а указателем на базовый класс.
Тогда, через взятие адреса туда можно будет складывать и объекты наследных классов.
А чтобы с ними корректно работать(в моем случае выводить дробь в обычном или смешанном виде), нужно объявлять в базовом классе виртуальные функции и переопределять их в наследниках(полиморфизм).
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
#include <stdio.h>
#include <iostream>
#include <cstdlib>//РусскийЯзык
#include "ClassDrob.h"//Основной класс рациональных дробей
#include "DrobResult.h"//Класс дроби с результатом
#include "MixedDrob.h"//Класс смешанной дроби
 
struct spisok{
    drob *A;//указатель на базовый класс
    spisok *next;
};
 
using namespace std;
void main(){
    setlocale(LC_ALL, "rus");
    
    spisok *dano = NULL;//указатель на начало списка
    spisok *x;//вспомогательный указатель на конец списка
 
    x = dano;
    drob n1(1, 3);
    
    MixedDrob n2(7, 3);
 
 
 
    for (int i = 0; i < 3; i++){
        if (i != 0) {
            x->next = new spisok;
            x = x->next;
        }
        if (i == 0) { x = new spisok; dano = x; }
        (x->A)=&n2;
        //(x->A).getResult();
        x->next = NULL;
    }
 
    x = dano;
    while (x != NULL){
        //cout << *(x->A) << " ";
        (*(x->A)).getDrob();
 
        x = x->next;
    }
 
 
    
    system("pause");
}
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru