Модераторы: bsa
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Классы C++, Оформление обекта класса в динамическую  
V
    Опции темы
Инк131
  Дата 26.3.2009, 16:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 6
Регистрация: 26.3.2009

Репутация: нет
Всего: нет



Никак не могу понять как оформить объект класса в динамическую память, в моей программе (смотрите ниже) мне нужно оформить сцеплённый массив чисел (void Massivs::Scepl(int x,int x1)) в динамическую память, знаю что чтобы выделить память используют new, а чтобы освободить delete, но не знаю как это применить к моей программе. Господа програмисты помогите доделать программу
Код

#include <iostream.h>
#include <math.h>
#include <conio.h>
#include <stdlib.h>
//Класс массивы
class Massivs
{
public:
int x,y,**ptr;//кол-во массивов, эл-ов в них и указатель на массивы
void Vvod();//ввод массивов
void Vuvod(int x1,int y1);//вывод всех массивов
void VuvodMassiv(int x1);//вывод 1 массива
void VuvodEl(int x1,int y1);//вывод эл-та в массиве
void Scepl(int x1,int y1);//сцепление 2 массивов
void Sliyan(int x,int x1);//слияние 2 массивов с исключением повторяющиъся элементов
};
void Massivs::Vvod()
{
if(x>0 && y>0)delete ptr;
cout<<"Vvedite razmer massivov\n";
cout<<"Kol-vo massivov: ";
cin>>x;
cout<<"Dlina massiva: ";
cin>>y;
ptr=new int*[x];
for(int i=0;i<x;i++){
ptr[i]=new(int[y]);
for(int j=0;j<y;j++)
ptr[i][j]=random(10)*pow(-1,random(2))*(3-random(4));
}
}
void Massivs::Vuvod(int x1,int y1)
{
for(int i=0;i<x1;i++)
{
for(int j=0;j<y1;j++)
cout<<ptr[i][j]<<" ";
cout<<endl;
}
getch();
}
void Massivs::VuvodMassiv(int x1)
{
cout<<"Vvedite nomer massiva: ";
cin>>x1;
if(x1<x)
{
for(int j=0;j<y;j++)
cout<<ptr[x1][j]<<" "<<endl;
}
else
cout<<x1<<endl;
getch();
}
void Massivs::VuvodEl(int x1,int y1)
{
cout<<"Vvedite nomer massiva: ";
cin>>x1;
cout<<"Vvedite nomer elementa massiva: ";
cin>>y1;
if(x1<x && y1<y)
cout<<"Element= "<<ptr[x1][y1]<<endl<<"Massive ";
else
cout<<"No element"<<endl;
getch();
}
void Massivs::Scepl(int x,int x1)
{
cout<<"Vvedite nomer 1 massiva: ";
cin>>x;
cout<<"Vvedite nomer 2 massiva: ";
cin>>x1;
for(int j=0;j<y;j++)
cout<<ptr[x][j]<<ptr[x1][j];
getch();
}
void Massivs::Sliyan(int x,int x1)
{
cout<<"Vvedite nomer 1 massiva: ";
cin>>x;
cout<<"Vvedite nomer 2 massiva: ";
cin>>x1;
for(int j=0;j<y;j++)
if (ptr[x][j]!=ptr[x1][j])
cout<<ptr[x][j]<<ptr[x1][j];
else
cout<<ptr[x][j];
getch();
}

//Главная функция
int main(int argc)
{
Massivs pt;
argc=0;
pt.x=0;pt.y=0;
do
{
clrscr(); //вывод меню
cout<<"1 - Razmer massiva i vvod\n2 - Vuvod vsex massivov\n";
cout<<"3 - Vuvod massiva\n4 - Vuvod elementa massiva\n5 - Sceplenie 2 massivov\n";
cout<<"6 - Slianie 2 massivov s isklucheniem povtora\n";
cout<<"7 - Exit\n";
cin>>argc;//выбор опции меню
//запуск функции класса
switch(argc){
case 1:
pt.Vvod();
break;
case 2:
pt.Vuvod(pt.x,pt.y);
break;
case 3:
pt.VuvodMassiv(0);
break;
case 4:
pt.VuvodEl(0,0);
break;
case 5:
pt.Scepl(0,0);
break;
case 6:
pt.Sliyan(0,0);
break;
}
}while(argc!=7);
return 0;
}



Это сообщение отредактировал(а) Инк131 - 26.3.2009, 16:42
PM MAIL   Вверх
mrbrooks
Дата 26.3.2009, 16:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


трололомен
****


Профиль
Группа: Завсегдатай
Сообщений: 4259
Регистрация: 4.10.2006
Где: Дол Гулдур

Репутация: 19
Всего: 306



Цитата(Инк131 @  26.3.2009,  16:39 Найти цитируемый пост)
Господа програмисты помогите доделать программу

Вот уж нет  smile  Лучше застрели с такой реализацией. Это же полная жесть.
PM MAIL   Вверх
Lazin
Дата 26.3.2009, 16:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 3820
Регистрация: 11.12.2006
Где: paranoid oil empi re

Репутация: 27
Всего: 154



Цитата(Инк131 @  26.3.2009,  16:39 Найти цитируемый пост)
//Главная функция
int main(int argc)
{
Massivs pt;
argc=0;
pt.x=0;pt.y=0;

Код

Massivs* pt = new Massivs;
...
pt->x = 0;
....

PM MAIL Skype GTalk   Вверх
mes
Дата 26.3.2009, 16:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


любитель
****


Профиль
Группа: Участник Клуба
Сообщений: 7954
Регистрация: 14.1.2006

Репутация: 79
Всего: 250



и отделите функции меню от функций самого массива , самим же будет легче smile

Это сообщение отредактировал(а) mes - 26.3.2009, 16:51


--------------------
PM MAIL WWW   Вверх
Инк131
Дата 26.3.2009, 16:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 6
Регистрация: 26.3.2009

Репутация: нет
Всего: нет



А что такого с реализацией? Компилятор ошибок не выдаёт, а прогу сам писал, в этом деле пока новичок, так что ногами не бейте smile

Добавлено @ 16:54
Цитата(Lazin @ 26.3.2009,  16:47)
Цитата(Инк131 @  26.3.2009,  16:39 Найти цитируемый пост)
//Главная функция
int main(int argc)
{
Massivs pt;
argc=0;
pt.x=0;pt.y=0;

Код

Massivs* pt = new Massivs;
...
pt->x = 0;
....

Спасибо за помощь, вот только пара вопросиков возникла: А если так сделать то в динамическую память разве не занесутся все массивы? А очистку памяти не надо делать потом? 

Это сообщение отредактировал(а) Инк131 - 26.3.2009, 16:58
PM MAIL   Вверх
mes
Дата 26.3.2009, 17:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


любитель
****


Профиль
Группа: Участник Клуба
Сообщений: 7954
Регистрация: 14.1.2006

Репутация: 79
Всего: 250



а еще откройте для себя "форматирование кода" - иначе просто не найдется смельчаков решившихся (с целью помочь) почитать  Ваш код smile


--------------------
PM MAIL WWW   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C/C++: Для новичков"
JackYF
bsa

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0520 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.