読んだすべての人にこんにちは
私は教科書からC++を独学しています:
教科書の質問では、関数をクラスのフレンドにするように求められているため、フレンド関数はすべてのクラスメンバーにアクセスできます。私はこれを行うことができます。問題は、その後、friend関数がクラスメンバー(プライベートメンバー)のみを読み取ることができ、それらに書き込むことはできないという質問が続くことです。
**注意:「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...