Инкапсуляция. Классы и их компоненты. Объекты

Ответить
natasha163163
Сообщения: 5
Зарегистрирован: 15 сен 2009, 17:56

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

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

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

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

Код: Выделить всё

// 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: :D elete()
{ 
 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;
}
Подскажите он правильно написан?И что вообще там делает каждая строчка.
Я вообще то очень плохо там что-то понимаю :(
Заранее большое спасибо.
flash1989
Сообщения: 135
Зарегистрирован: 01 сен 2010, 17:17

Готов помочь, пишите, обсудим.
icq: 588002847
skype: rfhfcerf
email: flash_1989@ukr.net
azrael
Сообщения: 89
Зарегистрирован: 31 май 2009, 15:30
Контактная информация:

Готов помочь, пишите icq 55655222
Ответить