Нужно ли писать объект в функции друга для доступа к закрытым членам класса.
#include <iostream>
#include <vector>
using namespace std;
class project
{
private:
vector<int> v1;
public:
void addelement(int a)
{
v1.push_back(a);
}
void view()
{
for(auto i=v1.begin();i<v1.end();i++)
{
cout<<*i<<endl;
}
}
friend void modify(int,int,project);
};
void modify(int data,int index,project p)//is it necessary here to make an object of class .
{
p.v1[index]=data;//As here without "p." it shows errors,it says use
//of unidentified identifier v1
}
int main()
{
project p1;
p1.addelement(7);
p1.addelement(91);
modify(24,0,p1);
modify(22,3,p1);
p1.view();
}
Интересно, если функция друга является другом класса и может самостоятельно обращаться к закрытым членам класса, то зачем нужно упоминать объект этого класса?
project p
по значению вmodify
, поэтому его изменения не отражаются вp1
. Вам нужно передать его по ссылке (project& p
) - person Kevin   schedule 30.04.2020