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

查看:115
本文介绍了oop - C++类的方法中声明的类对象的访问权限的问题。的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

问 题

我有个关于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++是这样规定的吗?在书上没找到=。=

解决方案

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

这篇关于oop - C++类的方法中声明的类对象的访问权限的问题。的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆