I don't understand why you doing it with a string.. The reason why I want to create a object with a constructor with another class as parameter, is because i want to use it's member function to edit the first class..
Ok, so the code you have posted is obviously not your real code. For some reason your James class could not be copied. It could be because it contains a non-copyable member, like std::fstream. If you don't need the object to be copied you could pass it by reference to the constructor.
Well.. I have a class which loads an image, and using this class I am able to get,set pixel values and so on.
my idea was to create class for the different actions I wanted to perform on this image, so by given it as parameter, it would be easier to manipulate the pixels which is within the image class.
Yeah, then it sounds like passing the object as reference is the way to go. My example uses const but if you want to manipulate the object you should leave it out.