Yurttas/PL/OOL/Cplusplus/F/03/01/02/00/D.cpp
Jump to navigation
Jump to search
1/*
2 Copyright(C) 1998
3 All Rights Reserved. Salih Yurttas, ZCubes, BitsOfCode Software Systems, Inc..
4
5 Permission to use, copy, modify, and distribute this
6 software and its documentation for EDUCATIONAL purposes
7 and without fee is hereby granted provided that this
8 copyright notice appears in all copies.
9
10 date : January 1, 1998.
11 author : Salih Yurttas.
12
13 D.cpp
14*/
15
16
17#include "D.h"
18
19D::
20D(const int a,
21 const int b) {
22 s = a;
23 d = new int[s];
24
25 for(int i=0; i<s; i++)
26 d[i] = b;
27}
28
29D::
30D(const D& a) {
31 s = a.s;
32 d = new int[a.s];
33
34 for(int i=0; i<s; i++)
35 d[i] = a.d[i];
36}
37
38D&
39D::
40operator=(const D& a) {
41 if(this==&a) return *this;
42
43 delete [] d;
44
45 s = a.s;
46 d = new int[a.s];
47
48 for(int i=0; i<s; i++)
49 d[i] = a.d[i];
50
51 return *this;
52}
53
54D::
55~D() {
56 delete [] d;
57}
58
59int
60D::
61get_s() const {
62 return s;
63}
64
65int*
66D::
67get_d() const {
68 return d;
69}
70
71void
72D::
73set_d(const int a) {
74 for(int i=0; i<s; i++)
75 d[i] = a;
76}
77
78void
79D::
80set_d(const int a,
81 const int b) {
82 d[a] = b; // assuming a is in valid range!
83 // [ exception-handling is needed ]
84}
85
86void
87D::
88set_d(const int* a) {
89 for(int i=0; i<s; i++) // assuming d and a has matching sizes
90 d[i] = a[i]; // [ exception-handling is needed ]
91}
92
93ostream& operator<<(ostream& os,
94 const D& a) {
95 for(int i=0; i<a.s; i++)
96 os << a.d[i] << endl;
97
98 os << endl;
99
100 return os;
101}