Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- using namespace std;
- class Array {
- private:
- int* array;
- int length;
- public:
- Array();
- Array(int* array, int length);
- Array(int length, int value = 0);
- ~Array();
- Array& operator = (const Array& a);
- friend ostream& operator<<(ostream& o, const Array& a);
- Array& operator += (int element);
- Array& operator -- ();
- Array operator -- (int);
- };
- Array::Array() {
- this->array = new int;
- *this->array = 0;
- this->length = 1;
- }
- Array::Array(int *array, int length) {
- this->length = length;
- this->array = new int[this->length];
- for(int i = 0; i < length; i++) {
- this->array[i] = array[i];
- }
- }
- Array::Array(int length, int value) {
- this->length = length;
- this->array = new int[this->length];
- for(int i = 0; i < length; i++) {
- this->array[i] = value;
- }
- }
- Array::~Array() {
- delete [] this->array;
- }
- Array& Array::operator=(const Array &a) {
- if(this == &a) {
- return *this;
- }
- delete [] this->array;
- this->length = a.length;
- this->array = new int[a.length];
- for(int i = 0; i < this->length; i++) {
- this->array[i] = a.array[i];
- }
- return *this;
- }
- ostream& operator<<(ostream &o, const Array &a) {
- for(int i = 0; i < a.length; i++) {
- o << a.array[i] << " ";
- }
- o << endl;
- return o;
- }
- Array& Array::operator--() {
- int* temp = new int[this->length - 1];
- for(int i = 1; i < this->length; i++) {
- temp[i - 1] = array[i];
- }
- delete [] this->array;
- this->length--;
- this->array = temp;
- return *this;
- }
- Array Array::operator--(int) {
- Array old = Array(this->array, this->length);
- int* temp = new int[this->length - 1];
- for(int i = 1; i < this->length; i++) {
- temp[i - 1] = array[i];
- }
- delete [] this->array;
- this->length--;
- this->array = temp;
- return old;
- }
- Array& Array::operator+=(int element) {
- int* temp = new int[this->length + 1];
- for(int i = 0; i < this->length; i++) {
- temp[i] = this->array[i];
- }
- temp[this->length] = element;
- this->length++;
- delete [] this->array;
- this->array = temp;
- return *this;
- }
- int main() {
- int arr1[] = {3, 5, 7, 9};
- Array ar1 = Array();
- Array ar2 = Array(arr1, sizeof arr1 / sizeof (int));
- Array ar3 = Array(5);
- Array ar4 = Array(3, 4);
- Array ar5;
- ar5 = ar2;
- cout << ar1;
- cout << ar2;
- cout << ar3;
- ar2 += 21;
- --ar1;
- cout << ar1;
- cout << ar2;
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement