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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 27.03.2011, 14:53   #1
vladxxl
Пользователь
 
Регистрация: 27.11.2010
Сообщений: 16
Сообщение Двумерный массив, конструктор копирования

Не могли бы вы помочь написать програмку, которая использует динамическую память под двумерный массив, конструктор, конструктор копирования, деструктор, два производных класса. Програмка должна инициализировать массив размером 5*5(отцовский класс), вывести сумму соответствующих элементов первых двух столбцов(производный 1), пощитать количество положительных и отрицательных елементов.

или помогите вставить сюда конструктор копирования и понять почему конслоль закрываеться на пол пути инициализации массива.

Код:
#include <iostream>

using namespace std;

class biba{
  protected:
     int** mas;
  public:
    
     biba(){
     
       mas = new int*[10];
      
       cout<<"Vvedit matrix: \n";
       for(int i=0; i<5; i++){
         for(int j=0; j<5; j++){
            cin>>mas[i][j];
         }
       }
     }
     
     ~biba(){
       delete []mas;
     }
     
     void funct1(){
          for(int i=0; i<5; i++){
             cout<<mas[i][0]<<" + "<<mas[i][1]<<" = "<<mas[i][0]+mas[i][1]<<"\n";
          }
     }
     
     void funct2(){
          int dod, vid;
          for(int i=0; i<5; i++){
             for(int j=0; j<5; j++){
                if(mas[i][j]<0){
                    vid++;
                }else
                if(mas[i][j]>0){
                    dod++;
                }
             }
          }
          
          cout<<"Dodatni: "<<dod<<"\n";
          cout<<"Videmni: "<<vid<<"\n";
     }
};


int main(){    
    
    biba mas;
    mas.funct1();
    mas.funct2();
    system("PAUSE");
    return 0;    
}
vladxxl вне форума Ответить с цитированием
Старый 27.03.2011, 15:14   #2
onewho
Форумчанин
 
Регистрация: 29.09.2010
Сообщений: 636
По умолчанию

так надо выделять память
Код:
mas = new int*[5]; // 5 строк
for (int=0; i <5; i++)
mas[i] = new int[5]; // 5 стлб
освобождать
Код:
     ~biba(){
       for (int i=0; i<5; i++) delete[] mas[i];
       delete[] mas;
     }
конструктор копий
Код:
biba (const biba& obj) {

mas = new int*[5];   // для новой копии
for (int=0; i <5; i++)
mas[i] = new int[5];

       for(int i=0; i<5; i++){
         for(int j=0; j<5; j++){
            mas[i][j]=obj.mas[i][j];

}
Ферштейн?

Последний раз редактировалось onewho; 27.03.2011 в 15:18.
onewho вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Конструктор копирования Lotles Общие вопросы C/C++ 1 31.10.2010 17:01
Конструктор копирования. 123er4 Общие вопросы C/C++ 4 13.06.2010 01:27
классы,конструктор копирования,динамический массив экземпляров.Нужна помощь bylynka Общие вопросы C/C++ 1 30.04.2009 21:56
Конструктор, двумерный динам массив ammaximus Общие вопросы C/C++ 7 08.02.2009 19:28
Конструктор копирования Djaconda Общие вопросы C/C++ 3 11.06.2008 18:54