C++类的方法中声明的类对象的访问权限的问题。

发布于 2022-09-04 14:29:56 字数 784 浏览 30 评论 0

我有个关于C++类私有变量访问权限的问题。下面的代码来自《C++ Primer Plus 第六版》第384-383页。

下面是一个类的声明:

// mytime0.h -- Time class before operator overloading
#ifndef MYTIME_H_
#define MYTIME_H_

class Time
{
private:
    int hours;
    int minutes;
public:
    Time();
    Time(int h, int m = 0);
    void AddMin(int m);
    void AddHr(int h);
    void Reset(int h = 0, int m = 0);
    Time Sum(const Time & t) const;
    void Show() const;
};

#endif // MYTIME_H_

下面是Sum方法的实现:

Time Time::Sum(const Time & t) const
{
    Time sum;
    sum.minutes = minutes + t.minutes;
    sum.hours = hours + t.hours + sum.minutes / 60;
    sum.minutes %= 60;
    return sum;
}

我的问题是为什么在这个方法里,可以直接访问局部变量sum的私有成员?C++是这样规定的吗?在书上没找到=。=

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

内心荒芜 2022-09-11 14:29:56

类方法定义的时候,对该类的所有对象(包括引用、指针这些)的所有成员都有访问权。

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文