Monday, October 21, 2013

Question regarding copy constructor

Newsgroup: comp.lang.c++

Subject: Question regarding copy constructor

From: somenath <somenathpal@...>

Date: Sun, 20 Oct 2013 21:15:23 -0700 (PDT)



I have one question regarding the output of the following program.



#include<iostream>

using namespace std;



class A {

public:

A(int x) {

cout<<"Inside constructor A "<<endl;



}

A(const A&a) {

cout<<"Inside copy constructor";

}

void operator =( int x) {

cout<<"Inside assignment operator overloading "<<endl;

}

};

int main(void)

{

A a(2);

A a1 = 2;

A a2 = a;

return 0;

}

Output

+++++++++

Inside constructor A

Inside constructor A

Inside copy constructor



For this code

A a1 = 2;

I was expecting the copy constructor would be called. Because my understanding is compiler will create a temporary object using 2 and then that temporary object will be copied to a1 object. Something as follows.

__tempObj(2);

A a1 = __tempObj;

But that is not happening here . The copy constructor is not getting called. Where am I going wrong?

How the compiler then assigning 2 to object a1?







via Usenet Forums - Usenet Search,Free Usenet - comp.lang.c++ http://www.pocketbinaries.com/usenet-forums/showthread.php?112217-Question-regarding-copy-constructor&goto=newpost

View all the progranning help forums at:

http://www.pocketbinaries.com/usenet-forums/forumdisplay.php?128-Coding-forums

No comments:

Post a Comment