Copy constructor not called.
John (Eljay) Love-Jensen
eljay@adobe.com
Wed Aug 12 20:04:00 GMT 2009
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
More information about the Gcc-help
mailing list