C ++,类私有变量

时间:2018-04-25 21:14:35

标签: c++

考虑以下课程:

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]->famadd::fr(account *fr)

2 个答案:

答案 0 :(得分:4)

让我们访问cppreference以查看private的内容。

http://en.cppreference.com/w/cpp/language/access

  

班级的私人成员只能由该班级的成员和朋友访问,无论成员是在相同还是不同的实例

您可以访问account的私人成员,因为您是从account的成员函数执行此操作。

答案 1 :(得分:0)

它可以访问,因为该方法在类中,因此可以访问其所有成员。私人/受保护/公共适用于课堂外的方法。