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

Задача по наследованию. Не понимаю некоторые моменты в формулировке задания - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Вывести наибольшее из целых чисел К,для которых сумма 1+2+...+К будет меньше или равна N, и саму эту сумму. http://www.cyberforum.ru/cpp-beginners/thread379476.html
while. Дано целое число N(>1).Вывести наибольшее из целых чисел К,для которых сумма 1+2+...+К будет меньше или равна N, и саму эту сумму. помогите решить )) спасибо)
C++ запись алгоритма как правильна на С записать: 1. logx(y)- логарифм y по основанию x 2. ln y- натуральный алгоритм http://www.cyberforum.ru/cpp-beginners/thread379474.html
C++ Перегруженные функции
Подскажите, плиз, с заданием. Задание у меня такое: написать перегруженную функцию для расчета: y=|sin x|-|cos x| Написал я прогу на основе найденного одного листинга: #include <iostream> #include <cmath> using namespace std;
C++ помогите найти ошибку в программе
#include <cstdlib> #include "CMatrix.h" #include <conio.h> //Руссификация ostream& operator<<(ostream &stream,char* s){ for(char* ps=s; *ps; ps++){ if(*ps=='ё') stream<<char(241); else if(*ps=='Ё')
C++ Написать програму которая заменяет все Enter и Tab в строке str1 на сымволи '\n' и '\t' в строке str2. http://www.cyberforum.ru/cpp-beginners/thread379438.html
а если не сложно то можно функцию
C++ Организация динамических структур..ПОМОГИТЕ...вообще с ними не дружу на С++=( Скласти програму, у який організувати динамічну структуру та виконати її обробку згідно зі своїм варіантом. Використати підпрограми.(с чергой) Випадкові дволітерні слова: з великих латинських літер (A..Z - коди 65..90); підрахувати, яка літера зустрічається рідше за всі Составить программу, в который организовать динамическую структуру и выполнить ее обработку в соответствии со своим... подробнее

Показать сообщение отдельно
[Федя]
9 / 9 / 1
Регистрация: 01.02.2010
Сообщений: 35

Задача по наследованию. Не понимаю некоторые моменты в формулировке задания - C++

08.11.2011, 08:13. Просмотров 1175. Ответов 6
Метки (Все метки)

Здравствуйте! Вот есть задание:

Описать базовый класс СТРОКА
Обязательные поля класса:
# Указатель на char - хранит адрес динамически выделенной памяти для размещения символов строки;
# Значение типа int - хранит длину строки в байтах;
Обязательные методы:
# Конструктор без параметров;
# Конструктор, принимающий в качестве параметра С-строку (заканчивается нулевым байтом);
# Конструктор, принимающий в качестве параметра символ;
# Конструктор копирования;
# Получение длины строки;
# Очистка строки (сделать строку пустой);
# Деструктор.
Описать производный от СТРОКА класс БИТОВАЯ_СТРОКА
Строки данного класса могут содержать только символы '0' и '1'. Если в составе инициализирующей строки будут встречены любые символы,
отличные от допустимых, БИТОВАЯ_СТРОКА принимает нулевое значение. Содержимое данных строк рассматривается как двоичное число.
Отрицательные числа хранятся в дополнительном коде.
Обязательные методы:
# Конструктор без параметров;
# Конструктор, принимающий в качестве параметра С-строку (заканчивается нулевым байтом);
# Конструктор копирования;
# Деструктор;
# Изменение знака на противоположный (перевод числа в дополнительный код).
Переопределить следующие операции (длина строки результата равна длине большей из строк; в случае необходимости
более короткая битовая строка расширяется влево знаковым разрядом):
# Присваивание (=);
# Сложение (+) - арифметическая сумма строк;
# Операция (==) - проверка на равенство.
Разроботчик вправе вводить любое (с обоснованием необходимости) число дополнительных полей и методов.
Написать тестовую программу, которая
# Динамически выделяет массив указателей на базовый класс (4-6);
# В режиме диалога заполняет этот массив указателями на производные классы,
при этом экземпляры производных классов создаются динамически с заданием начальных значений;
# Для созданных экземпляров производных классов выполняет проверку всех разработанных методов с выводом исходных данных и результатов на дисплей.
Для конструкторов копирования каждого класса предусмотреть диагностическую печать количества его вызовов в определенное место дисплея
(рекомендуется использовать статические члены класса).
Режим диалога обеспечивается с помощью иерархического меню.
(Это задание взято из книги "Павловская. С/С++: программирование на языке высокого уровня")


Объясните пожалуйста следующее:
Значение типа int - хранит длину строки в байтах
Как это написать (как присваивать в это "значение типа int" именно байты)? Так что ли?
C++
1
2
3
unsigned int length, size;
scanf ("%d",size);
length = sizeof(char)*size;
----
Очистка строки (сделать строку пустой);
Что под этим понимается? Присваивание первому элементу массива, хранящего строку, нулевого символа? Или освобождение памяти от этой строки (delete *%указатель%)?
----
Написать тестовую программу, которая
# Динамически выделяет массив указателей на базовый класс (4-6);
# В режиме диалога заполняет этот массив указателями на производные классы,
при этом экземпляры производных классов создаются динамически с заданием начальных значений;
# Для созданных экземпляров производных классов выполняет проверку всех разработанных методов с выводом исходных данных и результатов на дисплей.
А в это я вообще не въехал, что это за указатель на массив указателей, указывающих на классы? Как это хоть примерно должно выглядеть?
----
И каким образом писать методы для классов если сама строка создается динамически? Работать с этим:
# Указатель на char - хранит адрес динамически выделенной памяти для размещения символов строки;
используя адресную арифметику?
----
На каком этапе динамически выделять память для строки? При запуске любого из конструкторов (т.е. в каждом конструкторе нужно прописать выделение памяти под строку)? А как это будет выглядеть? Так?
C++
1
2
char *STRpointer;
STRpointer = new char [length];
----
И правильно ли я понимаю, что для каждой строки динамически создается отдельный объект?
----
Добавлено через 9 часов 36 минут
А еще не понятно, как делать это:
длина строки результата равна длине большей из строк; в случае необходимости
более короткая битовая строка расширяется влево знаковым разрядом
Каким образом более короткая битовая строка расширяется влево знаковым разрядом?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru