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

Копирующий конструктор - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 8, средняя оценка - 4.63
NukeXAI
2 / 2 / 0
Регистрация: 02.11.2011
Сообщений: 116
19.11.2011, 13:31     Копирующий конструктор #1
Помогите пожалуйста реализовать копирующий конструктор, у меня он выдает нули =\

Вот код:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
#include <iostream>
#include <cstdio>
#include <conio.h>
 
 
 
using namespace std;
 
 
class OP //создание структуры "Обрабатываемые переменные"
        {   public:
            int* A[50][50];
            int* n;
            void TRM ();
            void VvodRazMat () ;
            void VvodElMat();
            void VuvodElMat();
            void VuvodTRM();
            OP(){//default
            n=new int;
            n=0;
            };
            OP(int *n1){//constructor
            n=new int;
            n=n1;
            };
            OP(OP &OPP){//copy
            n=new int;
            n=OPP.n;
            A=new int*[n]*[n];
            for (int i=1;i<=*n;i++)
                for (int j=1;j<=*n;j++)
                    {
                           A[i][j]=OPP.A[i][j];
                    }
            };
            ~OP(){delete n;};//destructor
        };
 
        void OP::VvodRazMat ()
{
delete n;
n=new int;
cout<<"Vvedite razmer matricu n*n:\n";
cin>>*n;
 
 
};
void OP::VvodElMat()
        {
            cout<<"\nVvedite elementu matricu:\n";
            for (int i=1;i<=*n;i++)
                for (int j=1;j<=*n;j++)
                    {
                        cout<<"A["<<i<<"]["<<j<<"]=";
                        cin>>A[i][j];
                    }
                cout<<"\n";
        };
void OP::VuvodElMat () //Функция вывода квадратной матрицы
        {
            cout<<"\nVu vveli matrucy:\n";
            for (int i=1;i<=*n;i++)
                {
                 for (int j=1;j<=*n;j++)//вывод матрицы на экран
                     cout<<A[i][j]<<"  ";
                 cout<<"\n";
                }
        };
        void OP::TRM ()
        {
            int t;
                for (int i = 1; i <=*n; i++)
                    {
                     for(int j = i; j <=*n; j++)
                        {
                         t = A[i][j];
                         A[i][j] = A[j][i];
                         A[j][i] = t;
                        }
                    }
 
 
        };
                void OP::VuvodTRM () //Функция вывода квадратной матрицы
        {
     cout<<"Transponacuya:"<<endl;
 
                    for (int i=1;i<=*n;i++)
                {
                 for (int j=1;j<=*n;j++)//вывод матрицы на экран
                 cout<<A[i][j]<<"  ";
                 cout<<"\n";
                }
        };


И вот Мэин:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
//#include "File1.cpp"
#include "File2.cpp"
 
 
int main()
{
     OP RSM;
     RSM.VvodRazMat ();
     RSM.VvodElMat ();
     OP ppp=RSM;
     ppp.VuvodElMat();
     RSM.VuvodElMat ();
     RSM.TRM();
     RSM.VuvodTRM ();
     getch();
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Jupiter
Каратель
Эксперт C++
6543 / 3963 / 226
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
Завершенные тесты: 2
19.11.2011, 13:33     Копирующий конструктор #2
Цитата Сообщение от NukeXAI Посмотреть сообщение
OP(){//default
n=new int;
n=0;
};
OP(int *n1){//constructor
n=new int;
n=n1;
};
да у вас И с обычным конструктором проблемы
NukeXAI
2 / 2 / 0
Регистрация: 02.11.2011
Сообщений: 116
19.11.2011, 13:47  [ТС]     Копирующий конструктор #3
Это плохо! Будь добр помоги исправить...
Kastaneda
19.11.2011, 14:08
  #4

Не по теме:

только что выкладывал код в другой теме, отступы были проставлены где-то tab'ами, где-то пробелами, в итоге весь код "поплыл". Я 4 раза редактировал свой пост, пока код не стал удобочетаемым, т.к. это мне было нужно, чтобы мой код прочитали, а не кому-то.

NukeXAI
2 / 2 / 0
Регистрация: 02.11.2011
Сообщений: 116
24.11.2011, 14:04  [ТС]     Копирующий конструктор #5
я так понял никто помочь не может =\
Сыроежка
Заблокирован
24.11.2011, 14:11     Копирующий конструктор #6
NukeXAI,
Дело в том, тчто ваш код так отвратительно написан, что его даже неприятно читать!
Вы лучше сначала приведите свой код в порядок. Сначала в классе объявите конструкторы (без их определения) и деструкторы, затем другие функции-члены класса. И лишь только после этого поместите члены-данные класса.

Затем определения конструкторов и деструкторов вынесите за пределы класса. Тогда ваш код будет более читабелен. А сейчас у вас все в одной куче, что не разобрать, где что находится.
Yandex
Объявления
24.11.2011, 14:11     Копирующий конструктор
Ответ Создать тему
Опции темы

Текущее время: 07:15. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru