Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- template <typename T>
- class A {
- private:
- int* i;
- T* p;
- double d;
- public:
- A() : i(), p(new T), d() {}
- ~A() {}
- A(const A& a) : i(new int(*a.i)), d(a.d) {
- try {
- p = new T(*a.p);
- }
- catch(...) {
- delete i;
- throw;
- }
- }
- A& operator=(const A& a) {
- d = a.d;
- *i = *a.i;
- *p = *a.p;
- }
- A(A&& a) : A(a){
- delete a.i;
- delete a.p;
- }
- A& operator=(A&& a){
- A(a);
- }
- };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement