Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 09.09.2010, 16:05   #1
gessi
Пользователь
 
Регистрация: 13.09.2009
Сообщений: 20
Восклицание

Здравствуйте.
Помогите пожалуйста.Вот есть у меня задание:

Разработать класс, инкапсулирующий свойства одномерного динамического массива заданного размера, например, строку. Тип массива: Знаковый символьный массив.
Для организации динамического массива должен использоваться указатель соответствующего типа. Для хранения размера массива следует предусмотреть соответствующее поле, тип которого можно выбрать самостоятельно.
В классе предусмотреть функции, выполняющие следующие действия:
1.выделение памяти для динамического массива;
2.ввод данных в каждое поле;
3.вывод данных из каждого поля;
4.доступ по считыванию/записи в выбранный элемент массива;
5.освобождение памяти, занятой динамическим массивом.

И есть написанный код:

Код:

 
// CLS.H
 
class SIntArray
{
short int len, *arr;
 
public:
        void SetArr();
        void Input();
        void Output();
        void Delete();
        void OutputN();
};
 
 
// FUNC.CPP
 
#include <iostream.h>
#include "cls.h"
 
void SIntArray::SetArr()
{
 cout<<"Vvedite razmer massiva: ";
 cin>>len;
 arr = new short int[len];
 return;
}
 
void SIntArray::Input()
{
 cout<<"Vvedite dannie: \n";
 for(int i = 0; i < len; i++)
 {
  cout <<"A["<<i<<"] = ";
  cin >> arr[i];
 }
}
 
void SIntArray::Output()
{       
 cout << "Massiv: \n";
 for(int i = 0; i < len; i++)   
  cout <<"A["<<i<<"] = "<<arr[i]<<";\n";
}
 
void SIntArray::OutputN()
{
 cout << "Vivod elementa massiva: "; 
 int nom;
 cin >> nom;
 cout << "A["<<nom<<"] = "<<arr[nom]<<";\n";
}
 
void SIntArray::Delete()
{ 
 delete[] arr; 
 cout << "Massiv ydalen \n";
}
 
 
// PROJ1.CPP
 
#include <iostream.h>
#include "FUNC.cpp"
 
int main()
{
 SIntArray a;
  a.SetArr();
  a.Input();
  a.Output();
  a.OutputN();
  a.Delete();
 
 SIntArray* b;  
 int i;
 b = new SIntArray[i]; 
  b[i].SetArr();
  b[i].Input();
  b[i].Output();
  b[i].OutputN();
  b[i].Delete(); 
 delete[] b;
 
 SIntArray c[1];
  int k;
  c[k].SetArr();
  c[k].Input();
  c[k].Output();
  c[k].OutputN();
  c[k].Delete();
 
 SIntArray *d;
 {
  d = new SIntArray;
  d->SetArr();
  d->Input();
  d->Output();
  d->OutputN();
  d->Delete();
 }
 char e;
 cin>>e;
 return 0;
}
Подскажите он правильно написан?И что вообще там делает каждая строчка.
Я вообще то очень плохо там что-то понимаю
Заранее большое спасибо.

В функции main() создать автоматический объект разработанного класса, указатель на объект, динамический объект и массив объектов (из 3-4 элементов).
Для каждого созданного объекта выполнить по очереди функции ввода размера массива, выделения памяти, ввода данных в массив, вывода данных на экран, вывода одного из элементов массива и освобождения памяти.
Модифицировать текст программы следующим образом: в любом месте функции main() создать блок (составной оператор), внутри которого создать объект класса и выполнить для него ввод данных. Попытаться получить доступ к объекту за пределами блока, например, вывести его данные.

Последний раз редактировалось Stilet; 10.09.2010 в 18:02.
gessi вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Отобразить только определённые объекты, таблицы или другие компоненты веб-сайта. alex198555 Работа с сетью в Delphi 0 18.08.2010 23:24
TurboPascal: объекты и классы, прямоугольник с рамочкой ulala Помощь студентам 0 05.11.2009 17:28
TurboPascal: объекты и классы ulala Помощь студентам 1 28.10.2009 17:20
Инкапсуляция psycho-coder Общие вопросы Delphi 4 14.08.2009 13:04
Инкапсуляция Lyxor Общие вопросы Delphi 0 29.06.2008 13:06