Jump to content
  • Advertisement
Sign in to follow this  
noatom

Can't understand exercise

This topic is 1934 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

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.

Share this post


Link to post
Share on other sites
Advertisement
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?

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

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.

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites
Sign in to follow this  

  • Advertisement
×

Important Information

By using GameDev.net, you agree to our community Guidelines, Terms of Use, and Privacy Policy.

We are the game development community.

Whether you are an indie, hobbyist, AAA developer, or just trying to learn, GameDev.net is the place for you to learn, share, and connect with the games industry. Learn more About Us or sign up!

Sign me up!