考虑以下课程:
class account
{
char name[30];
char fam[30];
int fr_count;
bool fl_dost;
account *friends[10];
public:
account();
account(char *n, char* f);
int add_fr(account *fr);
}
int main()
{
account ob1("Ivan", "Petrov"), ob2("Gosho","Gosho"), ob3("fa","za"), ob4("Gosho","Gosho");
ob1.add_fr(&ob2);
ob1.add_fr(&ob3);
ob1.add_fr(&ob4);
getchar();
return 0;
}
方法:
int account::add_fr(account *fr)
{
int flag = 0;
if (fr_count >= 100)
{
cout << "Full" << endl;
return 0;
}
for (int i = 0; i < fr_count; i++)
{
if (!strcmp(friends[i]->name, fr->name) && !strcmp(friends[i]->fam, fr->fam))
{
flag = 1;
}
}
if (flag)
{
cout << "Exist" << endl;
return 0;
}
friends[fr_count] = fr;
fr_count++;
return 1;
}
我的问题是:为什么我可以在方法friends[i]->name
中访问私人会员friends[i]->fam
和add::fr(account *fr)
?
答案 0 :(得分:4)
让我们访问cppreference以查看private
的内容。
http://en.cppreference.com/w/cpp/language/access
班级的私人成员只能由该班级的成员和朋友访问,无论成员是在相同还是不同的实例
您可以访问account
的私人成员,因为您是从account
的成员函数执行此操作。
答案 1 :(得分:0)
它可以访问,因为该方法在类中,因此可以访问其所有成员。私人/受保护/公共适用于课堂外的方法。