This is the mail archive of the
gcc-help@gcc.gnu.org
mailing list for the GCC project.
Re: Copy constructor not called.
- From: "John (Eljay) Love-Jensen" <eljay at adobe dot com>
- To: Mustafa4LP <mustafa dot hussain at nechclst dot in>, GCC-help <gcc-help at gcc dot gnu dot org>
- Date: Wed, 12 Aug 2009 04:28:19 -0700
- Subject: Re: Copy constructor not called.
Hi Mustafa,
> Please consider the following program:
>
> #include <iostream>
> using namespace std;
> class A
> {
> public:
> A ()
> {
> cout << "constructor" << endl;
> }
> A (A &a)
> {
> cout << "copy constructor" << endl;
> }
> A operator = (const A &a)
> {
> cout << "= operator" << endl;
> }
> };
> int main()
> {
> A a;
> A b;
> b = ( b = a );
> }
Your "copy constructor" is not an appropriate copy constructor.
Change it to:
A(A const& a)
{
cout << "copy constructor" << endl;
}
Also, your assignment operator is not an appropriate assignment operator.
Change it to:
A const& operator = (A const& a)
{
cout << "= operator" << endl;
return *this;
}
HTH,
--Eljay