C++类的一个关于成员属性的访问问题

C++类的一个关于成员属性的访问问题

问题描述:

想问为什么在成员函数 int Adeadd(Person a);的函数体中可以访问并修改形参 a 的私有属性。我暂时是这样理解的。这里的具体原理是什么呀?

这是写的一个简单的测试代码


#include<iostream>
#include<string>
using namespace std;

class Person
{
public:
    Person(string name,int age):m_name(name),m_age(age){}
    int Adeadd(Person a)
    {
        a.m_age = 2;
        return m_age + a.m_age;
    }
private:
    string m_name;
    int m_age;
};


int main()
{
    Person p1("张三", 15);
    Person p2("王五", 12);
    cout << p1.Adeadd(p2) << endl;
    system("pause");
    return 0;
}

类内的方法当然可以访问并进行修改
规定在C++的类的成员函数中,允许直接访问该类的对象的私有成员变量。