Закрытая переменная может быть доступна из другого объекта того же типа? [Дубликат]

Возможный дубликат:

С помощью частного модификатора, почему член в других объектах может быть доступен напрямую?

Закрытые члены класса C ++ предназначены для того, чтобы быть невидимыми для других экземпляров класса. Я'Я в замешательстве, так как частные членыМожно быть доступным, как показано ниже! Кто-нибудь может мне это объяснить?

Вот'мой код:

#include  
using namespace std; 
class Person
{
private:
    char* name;
    int age;
public:
    Person(char* nameTemp, int ageTemp)
    {
      name = new char[strlen(nameTemp) + 1];
      strcpy(name, nameTemp);
      age = ageTemp;
    }
    ~Person()
    {
      if(name != NULL)
        delete[] name;
      name = NULL;
    }
    bool Compare(Person& p)
    {
      //p can access the private param: p
      //this is where confused me
      if(this->age < p.age) return false;
        return true;
    }
};
int main() 
{ 
  Person p("Hello, world!", 23);
  return 0; 
}

Ответы на вопрос(5)

Ваш ответ на вопрос