Привет всем, кто прочитал
Я изучаю C ++ из учебника:
Вопрос в учебнике просит меня сделать функцию другом класса, и, следовательно, функция друга может иметь доступ ко всем членам класса; это нормально, я могу это сделать.
Проблема заключается в том, что затем возникает вопрос, что функция друга может только читать членов класса (частных членов), но НЕ писать им!
** Обратите внимание: я смотрел на похожие вопросы / ответы по «stackoverflow» - но не смог найти подходящий и простой прямой ответ, который мне нужен.
Вот некоторый соответствующий код, который я имею, любая помощь будет оценена:
Большое спасибо заранее
#include <iostream>
#include <cstdio>
using namespace std;
class classroom{
private:
char name[25];
int student_id;
float grades[10];
float average;
int num_tests;
float letter_grade;
static int last_student_id;
public:
void enter_name_id(void);
void enter_grade(void);
void average_grades(void);
void letter_grades(void);
void output_name_id_grade(void);
void last_id(void);
classroom();
friend void readers(classroom&);
};
int classroom::last_student_id=1;
void readers(classroom& lee){
cout<<"\n number tests: "<<lee.num_tests;//friend function is reading class member -This is O.K!
lee.num_tests=15;//friend function is writing to class member - We don't want this to be allowed
cout<<"\n number tests: "<<lee.num_tests;//Used to test that class members are NOT accessed!
}
и в основной программе имеем:
int main()
{
classroom students[10];
readers(students[0]);
//and so on...