@wayn
5 / 5 / 1
Регистрация: 19.01.2011
Сообщений: 136
|
|
|
09.12.2011, 20:36. Просмотров 300. Ответов 3
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
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
| #include <iostream>
#include <ctime>
#include <cstdlib>
#pragma warning(disable:4101)
//---------------------------------
#define MX
#ifdef MX
#define TRACE(s) cout<<#s<<endl;
#else
#define TRACE(s)
#endif
//---------------------------------
using std::cout;
using std::cin;
using std::endl;
class cl
{
private:
int **p;
int m;
public:
cl(int m_);
cl(int **b, int m_);
cl(cl &obj);
void show();
cl operator+(cl obj);
// cl operator=(cl obj);
~cl();
};
cl::cl(int m_):m(m_)
{
p=new int*[m];
for(int i=0; i<m; p[i++] = new int[m]);
TRACE(==Global Constructor);
}
cl::cl(int **b, int m_):m(m_)
{
p=new int*[m];
for(int i=0; i <m; p[i++] = new int[m]);
for(i=0; i<m; i++)
for(int j=0; j<m; j++) p[i][j]=b[i][j];
TRACE(==Constructor);
}
cl::cl(cl &obj)
{
p=new int*[m];
for(int i=0; i<m; p[i++] = new int[m]);
for(i=0; i<m; i++)
for(int j=0; j<m; j++) p[i][j]=obj.p[i][j];
TRACE(==Constructor copy);
}
void cl::show()
{
for(int i=0; i<m; i++)
{
for(int j=0; j<m; j++)
{
cout.width(3);
cout<<p[i][j];
}
cout<<"\n";
}
}
cl cl::operator +(cl obj)
{
cl temp(4);
for(int i=0;i<m;i++)
for(int j=0;j<m;j++) temp.p[i][j]=obj.p[i][j]+p[i][j];
return temp;
}
cl::~cl()
{
for (int i=0; i<m; delete [] p[i++]);
delete [] p;
TRACE(==Destructor);
}
int main(void)
{
srand(time(0));
int a[4][4], i, j;
const int x(4);//change matrix size
for(i=0; i<x; i++)
for(j=0; j<x; j++) a[i][j]=1+rand()%10;
int *b[x];
for(i=0;i<x;i++) b[i]=a[i];
cl ob(b,4),ob1(b,4);
(ob+ob1).show();
cout<<"\n";
return 0;
} |
|
0
|