Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // CS 2134 HW 02
- #include <iostream>
- #include <cstdlib>
- using namespace std;
- class IntArray{
- public:
- //IntArray(int n=0) : size(n), array(new int[n]) {}
- IntArray(int n=0):size(n){}
- //deep copy
- IntArray(const IntArray& og) : size(og.size), array(new int[og.size]) {
- for (int i=0; i<this->size; ++i) {
- this->array[i] = og.array[i];
- }
- }
- //move constructor
- IntArray(IntArray&& og) : size(og.size), array(og.array) {
- og.size = 0;
- og.array = nullptr;
- }
- //destructor
- ~IntArray() {
- delete [] array;
- }
- //move assignment operator
- IntArray& operator=(IntArray&& og){
- if (this != og) {
- delete [] array;
- this->size = og.size;
- this->array = og.array;
- og.size = 0;
- og.array = nullptr;
- }
- return *this;
- }
- void put(int i, int value) {
- if (i < this->size) {
- this->array[i] = value;
- }
- }
- int get(int i) {
- if (i < this->size){}
- return this->array[i];
- }
- }
- void print() const {
- for (int i=0; i<this->size; ++i) {
- cout << this->array[i];
- }
- cout << endl;
- }
- private:
- int* array;
- int size;
- };
- int main() {
- IntArray* a = new IntArray(5);
- a->put(0,12);
- a->put(1,24);
- a->put(2,36);
- a->put(3,48);
- a->put(4,60);
- a->print();
- IntArray b(*a);
- b.print();
- IntArray c(move(*a));
- c.print();
- IntArray d = b;
- d.print();
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement