Yurttas/PL/OOL/Cplusplus/F/03/01/02/00/E.cpp

From ZCubes Wiki
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   E.cpp
14*/
15
16
17#include "E.h"
18
19E::
20E(const int a,
21  const int b) : s(a),
22                 d(new int[s]) {
23  for(int i=0; i<s; ++i)
24    d[i] = b;
25}
26
27E::
28E(const E& a) : s(a.s),
29                d(new int[a.s]) {
30  for(int i=0; i<s; ++i)
31    d[i] = a.d[i];
32}
33
34E&
35E::
36operator=(const E& a) {
37  if(this==&a) return *this;
38
39  delete [] d;
40
41  s = a.s;
42  d = new int[a.s];
43
44  for(int i=0; i<s; ++i)
45    d[i] = a.d[i];
46
47  return *this;
48}
49
50E::
51~E() {
52  delete [] d;
53}
54
55int
56E::
57get_s() const {
58  return s;
59}
60
61int*
62E::
63get_d() const {
64  return d;
65}
66
67void
68E::
69set_d(const int a) {
70  for(int i=0; i<s; ++i)
71    d[i] = a;
72}
73
74void
75E::
76set_d(const int a,
77      const int b) {
78  d[a] = b; // assuming a is in valid range!
79            // [ exception-handling is needed ]
80}
81
82void
83E::
84set_d(const int* a) {
85  for(int i=0; i<s; ++i) // assuming d and a has matching sizes
86    d[i] = a[i];         // [ exception-handling is needed ]
87}
88
89ostream& operator<<(ostream& os,
90                    const E& a) {
91  for(int i=0; i<a.s; ++i)
92    os << a.d[i] << endl;
93
94  os << endl;
95
96  return os;
97}