On 2007-09-25 16:44,
subramanian100in@yahoo.com, India wrote:
Quote:
I thought the copy ctor always takes the form
Test::Test(const Test & arg);
for a class Test.
>
But I read the following sentence in Stanley Lippman's C++ Primer 4th
Edition(Page 476):
>
The copy constructor is a special constructor that has a single
parameter that is a (usually const) reference to the class type.
>
My doubt
--------------
Since the above sentence contains "(usually const)" in parantheses,
does it mean that we may need a copy ctor that takes the form
Test::Test(Test & arg) ?
(that is, reference to plain type) ?
>
Kindly let me know when we will need this second form.
Yes, you might have a need for a non-const copy constructor, but I can
frankly not come up with a situation where you would. Perhaps if you
want to have special copy construction for some argument types (const
and temporaries), then you could declare both a const and a non-const
copy constructor.
Please also not that the copy constructor does not have to take only one
argument, as long as there are default values for the other arguments.
--
Erik Wikström