Member 12632487 Ответов: 1

Как можно использовать friend fundtion в ООП (inheritane)?


я хочу получить доступ к данным различных классов, которые наследуются с другим классом, но я не знаю, как я могу это сделать, я пробовал, как показано ниже.. так что помогите мне?
вот пример моего кода..
класс а{};
класс В{};
класс с{};
класс D:публичный,общественный Б,публичных с{
// вот я хочу позвонить другу fundition, так помогите мне?
};

Что я уже пробовал:

friend void result (Islamic, Pakstudy, Computer);// это Деклер в разных классах, таких как Islamic и т. д.
результат недействительным(Исламская это,Pakstudy ПК,компьютер см){
система ("cls");
cout<< "\t\t\T \ T \ T \ T результат викторины COMMPETATION\t\t\n\n " < & lt;endl;
cout<<"\t\t\t \ T \ T Quastion Category: Islamic Study \T \ T Total marks \t Get Marks " < & lt;endl;
соиь<&ЛТ;"\т\т\т\т\т\т\т Круг : 1 \т\т 25 \т "&ЛТ;&ЛТ;является.ismarks на<<епси;

результат(Islammic;Pakstudy;компьютеру); //здесь ошибка ,это другой класс В Я хочу получить доступ к данным, но Синтекс ошибка

[no name]

"syntex error" если вы действительно имеете в виду" синтаксическую ошибку", то да, это так. Вернитесь к своим учебным заметкам и просмотрите, как передавать параметры функциям.

CPallini

Не могли бы Вы уточнить?

1 Ответов

Рейтинг:
0

MattTelles

Вы вызываете функцию с аргументами (в вашем случае Islamic, Pakstudy, Computer).
Аргументы разделяются запятыми (,):

результат(Islammic, Pakstudy, Computer);

Решит ли это проблему вашего друга, я не знаю, не видя всего кода.

Мэтт


Member 12632487

#include<iostream>
#включить<iomanip>
#включить & lt;conio. h>
#include & lt;string>
#включить & lt;windows. h>
#включить<fstream>
использование пространства имен std;
класс Исламский;
компьютерный класс ;
класс Пакстуди;
меню класса{
общественный:
добро пожаловать в пустоту(){
соиь<&ЛТ;"\н\н\н\н\н\т\т\т\т\т\т\т\т\т добро пожаловать в \п \т\т\т\т\т\т\т\т\tQUIZ COMPETATION \н\н\н"на<<епси;
}
пустота главная(){
соиь<&ЛТ;" \т\т\т\т\т\т выбрал OPATOIN "на<<епси;
cout<< "\t\t\t \ T \ T 1) Национальный и Международный " < & lt;endl;
cout<< "\t\t\t\t \ T 2) компьютер " < & lt;endl;
cout<< "\t\t\t \ T \ T \ T 3) Исламский " < & lt;endl;
cout<< "\t\t\t\t \ T \ T 4) Результат " < & lt;endl;
}
профиль недействительными(строка категория,поплавок obtmarks){
соиь<&ЛТ;"\т\т\т\т\т\т студент имя: \т\т\т\т\т\т "на<<епси;
cout<< "\t\t\t\T \ T quastion category: "< & lt;category< "\t\t\T\T Round: "< & lt;endl;
cout<< "\t\t\t \ T \ T время начала:\t\t\T\T\T оставшееся время: "< & lt;endl;
cout<< "\t\t\T\T\T Total Marks: 25 " < & lt;setw(20)<"\t\t \ T \ T \ T Obtaing Marks:"< & lt;obtmarks< & lt;endl;
}
};
класс Исламский{
защищенный:
поплавок-это хорошо;
инт istmarks;

общественный:
Исламский();
пустота раундфирст(){
cout<<" islimic round1 " < & lt;endl;

}
результат friend void (Islamic, Pakstudy, Computer);

};
Исламский::Исламские(){
ismarks=0;
istmarks=25;
}
компьютерный класс {
защищенный:
поплавок commarks;
инт comtmarks;
общественный:
Компьютер();
пустота раундфирст(){
строковый вопрос;
строки Вариант1;
строки Вариант2;
строку вариант 3;
строка option4;
int count = 0;
int ответы[5];
int marks = 0;
int realAnswers[5] = {2,4,3,1,1}; // Реальные ответы предполагают первый индекс для первого вопроса
ifstream readQuestions("computer.txt");
в то время как (count < 5){
Гэтлину(readQuestions, вопрос);
Гэтлину(readQuestions, параметр1);
Гэтлину(readQuestions, параметр2);
Гэтлину(readQuestions, вариант 3);
getline(readQuestions, option4);
соиь <&ЛТ; вопрос &ЛТ;&ЛТ; "\Н";
соиь <&ЛТ; "1:" &ЛТ;&ЛТ; Вариант 1 &ЛТ;&ЛТ; "2:" &ЛТ;&ЛТ; параметр2 &ЛТ;&ЛТ; "3:" &ЛТ;&ЛТ; вариант 3 &ЛТ;&ЛТ; "4:" &ЛТ;&ЛТ; option4 &ЛТ;&ЛТ; "\Н";
Cin> & gt; ответы[count++];
}
for (int i=0; i< 5; i++){
if (answers[i] == realAnswers[i]){
метки = метки + 10;
}
ещё {
метки=метки-5;
}
}

cout < & lt; "у вас есть" < < метки< & lt; " метки";
// после этого вы можете сравнить индекс массива ответов с вашими реальными ответами
}
результат friend void (Islamic, Pakstudy, Computer);
};
Компьютер:: Компьютер(){
запятые=0;
comtmarks=25;
}
класс Пакстуди{
защищенный:
поплавок pakmarks;
инт paktmarks;
общественный:
Пакстуди();
пустота раундфирст(){
cout<< "pakstudy round1" < & lt;endl;

}
результат friend void (Islamic, Pakstudy, Computer);
};
Пакстуди:: Пакстуди(){
pakmarks=0;
пактмарки=25;
}
результат недействительным(Исламская это,Pakstudy ПК,компьютер см){
система ("cls");
cout<< "\t\t\T \ T \ T \ T результат викторины COMMPETATION\t\t\n\n " < & lt;endl;
cout<<"\t\t\t \ T \ T Quastion Category: Islamic Study \T \ T Total marks \t Get Marks " < & lt;endl;
соиь<&ЛТ;"\т\т\т\т\т\т\т Круг : 1 \т\т 25 \т "&ЛТ;&ЛТ;является.ismarks на<<епси;
}
связи класс:государственных исламских,компьютер,общественных Pakstudy,публичные меню
{
защищенный:
Чара обратно;
int выбор;
общественный:
пустота шоумену(){
Меню:: добро пожаловать();
Сон(7000);
м:
Меню:: главное();
cin> & gt; выбор;
}
аннулирование операции (){
если (выбор==1){
система ("cls");
Меню:: добро пожаловать();
Меню:: Профиль ("Pakstudy", pakmarks);
Pakstudy:: roundfirst();
}
иначе если (выбор==2){
система ("cls");
Меню:: добро пожаловать();
Меню:: Профиль ("компьютер", commarks);
Компьютер:: roundfirst();
}
иначе если (выбор==3){
система ("cls");
Меню:: добро пожаловать();
Меню:: Профиль ("Исламский", ismarks);