// demonstrates copy constructor with an object containing array // Mikhail Nesterenko // 11/2/2014 #include class MyClass{ public: MyClass(int); // regular constructuctor MyClass(const MyClass&); // copy constructor void addNum(int); // regular member function private: int *d; int size; }; MyClass::MyClass(int n){ size=n; d = new int[size]; for(int i=0; i< size; ++i) d[i]=0; } MyClass::MyClass(const MyClass& org){ size=org.size; d = new int[size]; for(int i=0; i< size; ++i) d[i]=org.d[i]; } // adds "n" to every element of the array void MyClass::addNum(int n){ for(int i=0; i < size; ++i) d[i] += n; } // standalone function taking an object of MyClass by value void otherfunc(MyClass newobj){ // nothing is done in the function } int main(){ MyClass myobj(5); // constructor allocates dynamic array myobj.addNum(10); // adding ten to elements otherfunc(myobj); }