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

Полиморфный multimap в Windows Forms - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Наследование http://www.cyberforum.ru/cpp-beginners/thread982550.html
15. Описать производный класс, содержащий поле козырь, и функцию, проверяющую кроет ли карта, указанную в качестве параметра другую карту с учетом козыря. (Задание. Изменить программу предыдущего задания, организовав на основе существующего класса производный класс. Производный класс также должен содержать не менее двух конструкторов. Исходная программа должна содержаться в двух файлах. В...
C++ Перегрузки Помогите пожалуйста написать программу. Описать производный класс, содержащий поле козырь, и функцию, проверяющую кроет ли карта, указанную в качестве параметра другую карту с учетом козыря. (Задание. Изменить программу предыдущего задания, организовав на основе существующего класса производный класс. Производный класс также должен содержать не менее двух конструкторов. Исходная программа... http://www.cyberforum.ru/cpp-beginners/thread982546.html
C++ Текстовые файлы
Ребят,помогите переделать программку,очень нужно...(15. Определить количество символов в самом большом предложении; по нажатию любой клавиши выделить цветом найденное слово.Задание. С помощью текстового редактора Блокнот создать файл, содержащий текст, длина которого не превы-шает 1000 символов (длина строки не превышает 70 симво-лов). Имя файла должно иметь расширение txt. Написать программу,...
Не работает проверка строк C++
Работаю в среде DEV C++, и не могу понять что неправильно. Пробовал вместо string ставить массив символов - немного работает но не всё. #include <iostream> #include <conio.h> #include <string.h> using std :: cout; using std :: cin; using std :: string; using std :: endl; class Worker { private:
C++ Задача на последовательность Фибоначчи http://www.cyberforum.ru/cpp-beginners/thread982533.html
Помогите пожалуйста решить задачу. Последовательность Фибоначчи u0, u1, … образуется по закону:u0=0, u1=1, ui=ui-1+ui-2 (i=2, 3 ...). Последовательность f0, f1,...образуется по закону:f0=0, f1=1, fi= fi-1 + fi-2 + ui-2 (i=2, 3 ...). Дано натурально n>1. Получить f0, f1,..., fn.
C++ Пошаговый ввод данных Вводятся натуральное число n, целые числа x1, x2, ..., xn. Вычислить: P=x1+(x2+x3)(x4+x5+x6)(x7+x8+x9+x10).... подробнее

Показать сообщение отдельно
GyroReaper
8 / 8 / 1
Регистрация: 20.10.2013
Сообщений: 49
20.10.2013, 16:03     Полиморфный multimap в Windows Forms
Сказали сделать вот такую лабу. Контейнер должен работать с числами, строками и структурами(это ключи).

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
#include "map"
#include "iostream"
using namespace std;
using namespace System;
 
 
class Polymorph {                       //Абстрактный класс
public:
virtual Polymorph& get() = 0 ;      //Виртуальная функция
};
 
 
class Int:public Polymorph {            //Класс целых чисел, потомок Polymorph
private:
    int X ;
public: 
    Int(int &x ) {X=x;}
    Int& get(){return *this;}
};
 
class Str:public Polymorph {            //Класс строк, потомок Polymorph 
    char* S;
public:
    Str(const char* &s) { S = new char[strlen(s)+1] ; strcpy(S , s);}
    Str& get(){return *this;}
};
 
class Struct:public Polymorph {         //Класс структур целых и вещественных чисел, потомок Polymorph
    struct Node{
        int X ;
        int Y;
    };
    Node p;
public:
    Struct( int &x , int &y ) {p.X = x ; p.Y = y; }
    Struct& get(){return *this;}
};
Контейнер представляет из себя multimap<Polymorph* , int>.
Данные, введенные в форму свести к правильным типам получается. Но на поиске происходит облом.
Т.к. ключи - это указатели. Простейшее создание объекта(ключа) выглядит так Int *X = Int(x); .
Элементы добавляются. Количество элементов возвращается. Но при поиске в textBox записывается только "true".
При вызове ф-ии erase(), кот должна удалять элемент, прога ломается с критической ошибкой.
Подозреваю, что вся беда в использовании указателей. И идет только их сравнение. Как добраться до реальных ключей? До человеческих данных, а не до указателей на них? Совсем заблудился. Препод ничего никому не объясняет , только делать заставляет. Уже весь инет перерыл. Помогите разобраться. Заранее спасибо всем ответившим.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 06:09. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru