In this code why can I access the private member of the object with no compiler error?
class Cents
{
private:
    int m_nCents;
public:
    Cents(int nCents=0)
    {
        m_nCents = nCents;
    }
    // Copy constructor
    Cents(const Cents &cSource)
    {
        m_nCents = cSource.m_nCents;
    }
    Cents& operator= (const Cents &cSource);
};
Cents& Cents::operator= (const Cents &cSource)
{
cSource.m_nCents is private why can I do the following:
    m_nCents = cSource.m_nCents;
    // return the existing object
    return *this;
}
                Because private means "visible accessible to the class", not "visible accessible to the object".
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With