@Jaidev : problem is when temporary object is created, how data is copied to the object in the main function ?
When we run it, data is being copied, but copy constructor is not called . This is the problem, we want to know how data is getting copied without calling copy constructor. If it were by assignment operator, we overloaded it to print statement, still nothing achieved. Sanju :) On Sun, Aug 21, 2011 at 1:05 AM, JAIDEV YADAV <[email protected]> wrote: > try to use X b = a ; b.fun() ; > > On Sun, Aug 21, 2011 at 1:33 PM, Abhishek Yadav < > [email protected]> wrote: > >> ok...may be i forgot , can you please tell me correct code for the copy >> constructor..? >> >> >> On Sun, Aug 21, 2011 at 1:31 PM, JAIDEV YADAV <[email protected]> wrote: >> >>> dude u haven't used copy constructor properly .. check it out again ... >>> you are not copying actually ... thats it ... >>> >>> On Sun, Aug 21, 2011 at 12:53 PM, Abhishek Yadav < >>> [email protected]> wrote: >>> >>>> Check this code: the thing i couldn't understand is when the object is >>>> being returned neither the copy constructor is being called nor the >>>> assignment operator overload is called....then how the object is being >>>> copied into b. i don't think default copy constructor should be called if i >>>> have made our own copy constructor....??? >>>> #include<iostream> >>>> using namespace std; >>>> #include<conio.h> >>>> >>>> class X >>>> { >>>> public: >>>> int num; >>>> X(int a) >>>> { >>>> num=a; >>>> cout<<"\n constructor"; >>>> } >>>> >>>> X(const X& t) >>>> { >>>> this->num=t.num; >>>> cout<<"\nCopy "; >>>> } >>>> >>>> X operator=(const X& t) >>>> { >>>> this->num =t.num; >>>> cout<<"\n Assigment "; >>>> return t; >>>> } >>>> >>>> X fun() >>>> { >>>> cout<<"\nin fun"; >>>> return X(7); >>>> } >>>> >>>> ~X() >>>> { >>>> cout<<"\ndestruct "; >>>> } >>>> >>>> }; >>>> >>>> int main() >>>> { >>>> { >>>> X a(1); >>>> X b=a.fun(); >>>> cout<<"\n\n"<<b.num; >>>> } >>>> getch(); >>>> } >>>> >>>> >>>> On Sun, Aug 21, 2011 at 12:33 PM, Abhishek Yadav < >>>> [email protected]> wrote: >>>> >>>>> The code is correct..return X will make a temporary object and for that >>>>> a constructor and corresponding destructor will be called and that object >>>>> is returned. >>>>> >>>>> On Sun, Aug 21, 2011 at 12:24 PM, Puneet Chawla < >>>>> [email protected]> wrote: >>>>> >>>>>> It will show error >>>>>> >>>>>> On Sun, Aug 21, 2011 at 12:21 PM, Sanjay Rajpal <[email protected]>wrote: >>>>>> >>>>>>> I think it will not be an error. >>>>>>> >>>>>>> This is because X() will create a temporary object, and when the >>>>>>> object is returned in the function calling it, then default copy >>>>>>> constructor will do bitwise copy of data members in the calling >>>>>>> function. >>>>>>> >>>>>>> Correct me if m wrong. >>>>>>> >>>>>>> On 8/20/11, sachin sabbarwal <[email protected]> wrote: >>>>>>> > class X() >>>>>>> > { >>>>>>> > >>>>>>> > X() >>>>>>> > { >>>>>>> > } >>>>>>> > >>>>>>> > >>>>>>> > >>>>>>> > X fun() >>>>>>> > { >>>>>>> > return X(); //error or what?? because constructor never >>>>>>> returns >>>>>>> > anything so what this return statement will receive after executing >>>>>>> x() and >>>>>>> > what it will return?? >>>>>>> > } >>>>>>> > >>>>>>> > >>>>>>> > }; >>>>>>> > >>>>>>> > -- >>>>>>> > You received this message because you are subscribed to the Google >>>>>>> Groups >>>>>>> > "Algorithm Geeks" group. >>>>>>> > To post to this group, send email to [email protected]. >>>>>>> > To unsubscribe from this group, send email to >>>>>>> > [email protected]. >>>>>>> > For more options, visit this group at >>>>>>> > http://groups.google.com/group/algogeeks?hl=en. >>>>>>> > >>>>>>> > >>>>>>> >>>>>>> >>>>>>> -- >>>>>>> Sanju >>>>>>> :) >>>>>>> >>>>>>> -- >>>>>>> You received this message because you are subscribed to the Google >>>>>>> Groups "Algorithm Geeks" group. >>>>>>> To post to this group, send email to [email protected]. >>>>>>> To unsubscribe from this group, send email to >>>>>>> [email protected]. >>>>>>> For more options, visit this group at >>>>>>> http://groups.google.com/group/algogeeks?hl=en. >>>>>>> >>>>>>> >>>>>> >>>>>> >>>>>> -- >>>>>> With regards >>>>>> ............ >>>>>> Puneet Chawla >>>>>> Computer Engineering Student >>>>>> NIT Kurukshetra >>>>>> >>>>>> -- >>>>>> You received this message because you are subscribed to the Google >>>>>> Groups "Algorithm Geeks" group. >>>>>> To post to this group, send email to [email protected]. >>>>>> To unsubscribe from this group, send email to >>>>>> [email protected]. >>>>>> For more options, visit this group at >>>>>> http://groups.google.com/group/algogeeks?hl=en. >>>>>> >>>>> >>>>> >>>> -- >>>> You received this message because you are subscribed to the Google >>>> Groups "Algorithm Geeks" group. >>>> To post to this group, send email to [email protected]. >>>> To unsubscribe from this group, send email to >>>> [email protected]. >>>> For more options, visit this group at >>>> http://groups.google.com/group/algogeeks?hl=en. >>>> >>> >>> >>> >>> -- >>> JaiDev Yadav >>> (National Yoga Champion) >>> Computer Engg. Dept. >>> National Institute of Technology >>> Kurukshetra,Haryana >>> >>> -- >>> You received this message because you are subscribed to the Google Groups >>> "Algorithm Geeks" group. >>> To post to this group, send email to [email protected]. >>> To unsubscribe from this group, send email to >>> [email protected]. >>> For more options, visit this group at >>> http://groups.google.com/group/algogeeks?hl=en. >>> >> >> -- >> You received this message because you are subscribed to the Google Groups >> "Algorithm Geeks" group. >> To post to this group, send email to [email protected]. >> To unsubscribe from this group, send email to >> [email protected]. >> For more options, visit this group at >> http://groups.google.com/group/algogeeks?hl=en. >> > > > > -- > JaiDev Yadav > (National Yoga Champion) > Computer Engg. Dept. > National Institute of Technology > Kurukshetra,Haryana > > -- > You received this message because you are subscribed to the Google Groups > "Algorithm Geeks" group. > To post to this group, send email to [email protected]. > To unsubscribe from this group, send email to > [email protected]. > For more options, visit this group at > http://groups.google.com/group/algogeeks?hl=en. > -- You received this message because you are subscribed to the Google Groups "Algorithm Geeks" group. To post to this group, send email to [email protected]. To unsubscribe from this group, send email to [email protected]. For more options, visit this group at http://groups.google.com/group/algogeeks?hl=en.
