Talk About Network

Google


Register and Login
Nick
Password
Register create new account Sign up is FREE and you can post replies, new topics, bookmark posts and more!
Recover lost password


Programming > C++ Moderated > Re: copy constr...
Latest [ Topics | Posts ] Archive Post A New Topic Post a Reply
<< Topic < Post Post 3 of 10 Topic 9503 of 9831
Post > Topic >>

Re: copy constructor not being called

by d04rp@[EMAIL PROTECTED] Apr 15, 2008 at 11:20 PM

> In the following code, I expect the copy constructor to be called as
> per the textbooks but it is not being called. Could you please tell me
> why? g++ version 4.1.2
>
> # include <iostream>
> using namespace std;
> class base
> {
>    char s;
> public:
>    base( ){cout<< "construction" << endl;}
>    base(const char a ) {cout << "construction with arg" << endl;}
>    base(const base & a){cout <<"copy constructor" << endl;}
>    base & operator=(const base & a){cout << "assignment operator" <<
> endl;}
>    ~base( ) {cout << "destruction" << endl;}
>
> };
>
> main ( )
> {
>    base b1 = 'x'; //why copy constructor not called here?
>    base b2 = b1; //copy constructor is called
>
> }
>
> the line base b1 = 'x', as per my understanding must create a
> tem****ary object and then it should be copied to b1. But only the
> constructor with argument is called in this example when executed.
>
> Could you please explain why?

It must not create a tem****ary object. Because one of the constructors
take an char, that constructor will be called.
base b1 = 'x' is equivalent with base b1('x'); (so it no assignment is
taking place).


-- 
      [ See http://www.gotw.ca/resources/clcm.htm
for info about ]
      [ comp.lang.c++.moderated.    First time posters: Do this! ]
 




 10 Posts in Topic:
copy constructor not being called
suresh <suresh.amritap  2008-04-15 12:33:42 
Re: copy constructor not being called
dimitry.ivanov@[EMAIL PRO  2008-04-15 23:19:01 
Re: copy constructor not being called
d04rp@[EMAIL PROTECTED]   2008-04-15 23:20:45 
Re: copy constructor not being called
David Pol <david@[EMAI  2008-04-15 23:22:50 
Re: copy constructor not being called
Chris Uzdavinis <cuzda  2008-04-15 23:21:49 
Re: copy constructor not being called
Marcin Swiderski <sfid  2008-04-15 23:22:43 
Re: copy constructor not being called
Francis Glassborow <fr  2008-04-16 11:33:30 
Re: copy constructor not being called
Chris Uzdavinis <cuzda  2008-04-16 11:34:41 
Re: copy constructor not being called
Ron Natalie <ron@[EMAI  2008-04-16 15:44:47 
Re: copy constructor not being called
Marcin Swiderski <sfid  2008-04-17 03:47:55 

Post A Reply:
  Go here to Signup

AddThis Feed Button


About - Advertising - Contact - Frequently Asked Questions - Privacy Policy - Terms of Use - Signup

Contact
tan12V112 Fri Jul 25 21:51:35 CDT 2008.