Jump to content

  • Log In with Google      Sign In   
  • Create Account

We're offering banner ads on our site from just $5!

1. Details HERE. 2. GDNet+ Subscriptions HERE. 3. Ad upload HERE.


Can't understand exercise


Old topic!
Guest, the last post of this topic is over 60 days old and at this point you may not reply in this topic. If you wish to continue this conversation start a new topic.

  • You cannot reply to this topic
4 replies to this topic

#1 noatom   Members   -  Reputation: 785

Like
0Likes
Like

Posted 04 April 2013 - 11:06 AM

English is not my primary language,so that might be the issue,anyway,here it is:

 

Create a class X and declare(don't define) a private copy-constructor.Make a public clone() function as a const member function that returns a copy of the object that is created using new.Now write a function that takes as an argument a const X& and clones a local copy that can be modified.

 

class X{
X(X&);
public:
X clone()const {
X* a = new X;
}
};

void func(const X& i){
i.clone();
}

 

 

The code is not complete,and the whole clone function might be wrong.Can someone explain what the exercise actually asks? Does it asks for a function that I can call like this?

X obj;

obj.clone(); //returns a new copy of X

 

If that's what it asks for,how would I do that? I tried this:

*a = this;

but gives an error.



Sponsor:

#2 Álvaro   Crossbones+   -  Reputation: 13692

Like
0Likes
Like

Posted 04 April 2013 - 11:16 AM

clone() has to return a pointer. Otherwise you have no way to clean up using `delete' when you are done with the copy.

Does that help?

#3 noatom   Members   -  Reputation: 785

Like
0Likes
Like

Posted 04 April 2013 - 11:21 AM

damn,can't believe i didn't remember that "this" is a pointer.So,using a dereferenced this solves the thing.Thanks


Edited by noatom, 04 April 2013 - 11:27 AM.


#4 LorenzoGatti   Crossbones+   -  Reputation: 2739

Like
0Likes
Like

Posted 05 April 2013 - 01:53 AM

damn,can't believe i didn't remember that "this" is a pointer.So,using a dereferenced this solves the thing.Thanks

Wait a minute. Do you actually copy the content of your X in your clone() method, without sharing the data in the original X instance? Write the necessary parts of class X (some data to modify, the definition of the copy constructor) and tests to prove how your exercise behaves.
Produci, consuma, crepa

#5 wintertime   Members   -  Reputation: 1802

Like
0Likes
Like

Posted 05 April 2013 - 07:39 AM

Its tempting to just type the solution, because its actually easy if you just follow every single step of the text in the exercise. But you wouldnt learn from others doing it for you so I wont.

 

Some hints:

- You are doing it very wrong.

- Erase the body of clone and func and try again. Remember to use a return statement for a function that returns a value.


Edited by wintertime, 05 April 2013 - 07:46 AM.





Old topic!
Guest, the last post of this topic is over 60 days old and at this point you may not reply in this topic. If you wish to continue this conversation start a new topic.



PARTNERS