Expand|Select|Wrap|Line Numbers
- #include<iostream>
- using namespace std;
- class Cents
- {
- public:
- int m_nCents;
- Cents(int nCents=0):m_nCents(nCents)
- {
- cout<<"Calling normal constructor with value:"; m_nCents = nCents;
- cout<<m_nCents<<endl;
- }
- // Copy constructor
- Cents(const Cents& cSource)
- {
- cout<<"Calling copy construct\n";
- m_nCents = cSource.m_nCents;
- std::cout<<m_nCents<<std::endl;
- }
- };
- int main(){
- Cents obj2 = 37;
- cout<<"Value of m_nCents with sobject2:"<<obj2.m_nCents;
- return 0;
- }
o/p is
Calling normal constructor with value:37
Value of m_nCents with sobject2:37
Question is :
Why is the overloaded copy constructor that I have written not getting called here?Internally default copy constructor is getting called.Thats why we get
value of obj2.m_nCents as 37.
~
~