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

Массив указателей на производные классы - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Скомпилировать программу http://www.cyberforum.ru/cpp-beginners/thread601473.html
Пожалуйста скомпилируйте программу #include <cstdlib> #include <iostream> #include <map> #include <string> #include <vector> #include <fstream> #include <iomanip> #include <windows.h>
C++ Не пойму в чем ошибка Дано натуральное число n. Найти наибольшее среди чисел ke^sin^2(k+1) (k=1, …, n), а также сумму этих чисел. #include <iostream> #include <cmath> using namespace std; int main() { http://www.cyberforum.ru/cpp-beginners/thread601461.html
Проверить код на правильность C++
Здравствуйте! Помогите пожалуйста проверить код на правильность,т.к. почему-то не компилируется. Задача: Известно кол-во очков, набранных каждой из 8 команд-участниц первенства по футболу. Ни одна пара команд не набрала одинаковое количество очков. Вывести команды в соответствии с занятыми ими местами в чемпионате. #include <iostream> #include <cstring> using namespace std; struct Comand...
C++ PrintWindow was not declared
Привет, пишу скрипт для снятия скриншота с фонового окна, пробую пользовать PrintWindow, ругается на недекларированую функцию, подключил windows.h, может чего упустил еще?
C++ Блок Схема http://www.cyberforum.ru/cpp-beginners/thread601420.html
Добрый День. Написал курсовую по методу золотого сечения,а вот надо ещё к программе составить 2 блок схемы В 1 Блок схеме(Поиск минимума,всего у меня 9 функций,) должно быть всё то,что есть в подпрограмме ButtonClick1 в коде ниже.Только не разбивать всё в отдельные блок схемы,а просто разъединять соединителями например круглишком и внутри него цифра 1 2 3 4 5 6 7 8 9. Во 2-й Блок...
C++ решение задач с использованием рекурсии Ув Форумчане подскажите пожалуйста либо ресурс где это можно прочитать мне нужно эту тему расписать помогите пожалуйста :) подробнее

Показать сообщение отдельно
numberone
0 / 0 / 0
Регистрация: 09.06.2012
Сообщений: 14
09.06.2012, 16:40     Массив указателей на производные классы
Здравствуйте,
есть базовый класс строка mystring

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
class mystring    // Опишем базовый класс строки
{
protected:
    char *p;    // Указатель на char - хранит адрес динамически выделенной памяти для размещения символов строки
    int length;    // Значение типа int - хранит длину строки в байтах
public:    // Обязательные методы должны выполнять следующие действия:
    mystring();    // Конструтор без параметров
    mystring(const char *s);    // Конструктор, принимающий в качестве параметра Си-строку (заканчивается нулевым байтом)
    mystring(char c);        // Конструктор, принимающий в качестве параметра символ (char)
    mystring(const mystring &str);    // Конструктор копирования
    ~mystring();    // Деструктор
    int get_length();    // Получение длины строки
    void show();        // Временно. Для тестирования вывод строки на экран
};
и производные от него классы Строка идентификатор и комплексное число

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
// Производный от строка класс строка идентификатор (_A-Za-z0-9)
class identification: public mystring
{
public:    // Обязательные методы:
    identification();    // Конструтор без параметров
    identification(const char *s);    // Конструктор, принимающий в качестве параметра Си-строку (заканчивается нулевым байтом)
    identification(char c);        // Конструктор, принимающий в качестве параметра символ (char)
    identification(const identification &str);    // Конструктор копирования
    ~identification();    // Деструктор
    int find_char(char c);    // Поиск первого вхождения символа в строку
    identification operator+(identification id);    // Переопределим сложение  (+) - операция конкатенации строк
    identification operator=(identification id);    // Переопределим присваивание (=)
    bool operator<(identification id);                // Переопределим оператор  <   - проверка на меньше. Строка считается меньше другой,
                                                    // если код символа первой строки в i-й позиции
                                                    // (i изменяется от 0 до n-1, где n - длина более
                                                    // короткой строки) меньше кода символа в той же позиции
                                                    // кода символа в той же позиции во второй строке,
                                                    // длины строк могут не совпадать.
};
// Производный от строка класс комплексное число (+-0-9i)
class complex: public mystring
{
public:
    complex();    // Конструтор без параметров
    complex(const char *s);    // Конструктор, принимающий в качестве параметра Си-строку (заканчивается нулевым байтом)
    complex(const complex &str);    // Конструктор копирования
    ~complex();    // Деструктор
    complex operator+(complex com);        // Переопределим сложение    + - сумма чисел
    complex operator=(complex com);        // Переопределим присваивание (=)
};

Все методы для классов написал, но когда дошел до приведенных заданий заданий вообще не понимаю как это организовать

Написать тестовую программу, которая:
* динамически выделяет массив указателей на базовый класс (4-6 шт.);
* в режиме диалога заполняет этот массив указателями на производные классы,
при этом экземпляры производных классов создаются динамически с заданием
начальных значений;
* для созданных экземпляров производных классов выполняется
проверка всех разработанных методов (в соответствии с вариантом задания),
с выводом исходных данных и результатов на дисплей.
* для конструкторов копирования каждого класса предусмотреть
диагностическую печать количества его ввызовов в заданное место дисплея,
(рекомендуется использовать статические члены класса).

Режим диалога обеспечивается с помощью иерархического меню.

Не понятно даже как это в консоли реализовать, не то что с windows forms

Пожалуйста приведите фрагмент кода, если можно, спасибо

вот моя попытка первый и второй пункт реализовать


C++
1
2
3
4
5
6
7
8
mystring **pointer;
    int NumberOfElements;
    cin >> NumberOfElements;
    pointer =new mystring*[NumberOfElements];
    for(int i=0;i<NumberOfElements;i++)
    {
    *(pointer+i) = dynamic_cast<mystring*>(new identification, new complex);
    }
Но как задать номер элемента, его тип и начальное значение, я хз
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 00:42. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru