使用对象访问私有成员

时间:2013-12-05 16:36:05

标签: c++

我在某处看到了以下示例,并且同一类的对象能够访问私有成员。我无法理解它背后的逻辑。

#include <iostream>

using namespace std;

class CTime
{
    int hours;
    int minutes;
public:
    void getTime(int h, int m)
    {
        hours = h;
        minutes = m;
    }
    void putTime(void)
    {
        cout << hours << "hours and ";
        cout << minutes << " minutes" << "\n";
    }
    void sum(CTime t1, CTime t2);
};

// ---------- vvvv ---------------
//  --------- Here ---------------
void CTime::sum(CTime t1, CTime t2)
{
    minutes  = t1.minutes + t2.minutes;
    hours = minutes/60;
    minutes = minutes%60;
    hours = hours + t1.hours + t2.hours;
}

int main()
{
    CTime T1, T2, T3;

    T1.getTime(2, 45);
    T2.getTime(3, 30);

    T3.sum(T1, T2);

    cout << "T1 = ";
    T1.putTime();

    cout << "T2 = ";
    T2.putTime();

    cout << "T3 = ";
    T3.putTime();

    return 0;
}

总之(CTime,CTime)函数,CTime的对象能够访问私有成员。在哪种情况下是可能的。请澄清一下。 谢谢。

2 个答案:

答案 0 :(得分:3)

C ++封装是基于类的。类的实例可以自由访问同一类的其他对象的私有成员。

答案 1 :(得分:1)

这是一个非常好的基本解释http://www.cplusplus.com/doc/tutorial/inheritance/

除此之外,您还可以找到具有访问类型的表。这是你感兴趣的,但整篇文章都很有用。

相关问题