0 / 0 / 0
Регистрация: 11.08.2010
Сообщений: 29
|
|||||||||||
1 | |||||||||||
Friend Function11.08.2010, 12:29. Показов 4494. Ответов 23
Метки нет (Все метки)
Я не очень понимаю как пользаватса Friend функцыей
Class.h
0
|
11.08.2010, 12:29 | |
Ответы с готовыми решениями:
23
C:\Dev-Cpp\lib\vector.h `ostream' is neither function nor member function; cannot be declared friend friend function friend function Friend Function - C++ |
159 / 156 / 47
Регистрация: 29.04.2009
Сообщений: 636
|
||||||
11.08.2010, 13:47 | 2 | |||||
0
|
0 / 0 / 0
Регистрация: 11.08.2010
Сообщений: 29
|
|
11.08.2010, 14:25 [ТС] | 3 |
ее не особо понял) ет типо мне стоит описать:
а как френд фанкшен?? void f(); - зачем ет ? обясни пожалусто если не трудно и как мне цеплять дальше ету функцыю как ею вобще ползьаватса зарание спс
0
|
159 / 156 / 47
Регистрация: 29.04.2009
Сообщений: 636
|
|
11.08.2010, 18:21 | 4 |
ключевое слово friend предназначено для взаимодействия нескольких классов/функций.
если void f();обозначена как friend- она является другом класса и имеет доступ ко всем его переменным как и сам класс с теми же правами доступа. P.s выложите все задание.
0
|
В астрале
8049 / 4806 / 655
Регистрация: 24.06.2010
Сообщений: 10,562
|
|
11.08.2010, 18:22 | 5 |
Алсо, не следует злоупотреблять friend функциями и пихать их где не попадя. Это так, на всякий случай.
0
|
0 / 0 / 0
Регистрация: 11.08.2010
Сообщений: 29
|
|
12.08.2010, 10:17 [ТС] | 6 |
Координати вершин, конструктор з параметрами, метод обчислення площини та периметра з виведенням результату, методи ініціювання та закриття графічного режиму, дружня функція побудови квадрата Описати клас, об’єкт; обчислити та вивести площу і периметр; візуалізувати фігуру, яку презентує об’єкт
P.S. делать в графическом режиме не нужно
0
|
В астрале
8049 / 4806 / 655
Регистрация: 24.06.2010
Сообщений: 10,562
|
|
12.08.2010, 10:19 | 7 |
Andryushchenko,
Не по теме: Ну переводите ж вы на русский то задание... Что вообще значит "Построения квадрата"? Графика что-ли, или как?
0
|
0 / 0 / 0
Регистрация: 11.08.2010
Сообщений: 29
|
|
12.08.2010, 10:47 [ТС] | 8 |
Короче ) координаты сторон, конструктор с параметрами, метод для нахождения периметра и площади с выведением на екран... и использование дружественых функцый (я все то написал а вот как функцыи влепить ума не приложу) ). вот ето все мое задание Графику вообще не нада трогать мы ее ещо не учили ...
0
|
В астрале
8049 / 4806 / 655
Регистрация: 24.06.2010
Сообщений: 10,562
|
|
12.08.2010, 10:48 | 9 |
Andryushchenko, Ну раз это все твое задание у тебя уже сделано.
Я бы конечно не издевался так над языком, а назвал бы класс Square ну и далее соответственно. И площадь это все же Area а не square... ЗЫ Что такое построить квадрат? Как ты это понимаешь? Я это могу представить либо заданием параметра (что у тебя уже есть, но зачем тут друж. функция, тогда не понятно), либо графикой
0
|
0 / 0 / 0
Регистрация: 11.08.2010
Сообщений: 29
|
|
12.08.2010, 10:56 [ТС] | 10 |
ну препод сказал влепите дружественую функцыю и посмотрите как она работает ... я то все задание зделал но зацыклился с етими функцыями ... ( я тоже не вижу смысл их использовать програма както начинает страно работать )
P.S. сорь за то что изковеркал классы :Д писал на скорую руку, спс я не оч силен в английском ) буду знать на будущие
0
|
В астрале
8049 / 4806 / 655
Регистрация: 24.06.2010
Сообщений: 10,562
|
|||||||||||
12.08.2010, 11:02 | 11 | ||||||||||
Andryushchenko, Вмути перегрузку ввода-вывода... Если хочешь посмотреть как работают friend.
0
|
0 / 0 / 0
Регистрация: 11.08.2010
Сообщений: 29
|
|
12.08.2010, 11:28 [ТС] | 12 |
Сорь за тупость не оч понял куда ето впихнуть но щас попробую чото нахимичить...
0
|
В астрале
8049 / 4806 / 655
Регистрация: 24.06.2010
Сообщений: 10,562
|
|
12.08.2010, 11:30 | 13 |
Andryushchenko, Смотри. В класс пихаешь прототипы. В public секцию. Остальное реализуешь где угодно. Но так как у тебя h файл, то в том же файле где конструктор и прочее, но отдельно
0
|
0 / 0 / 0
Регистрация: 11.08.2010
Сообщений: 29
|
|
12.08.2010, 11:48 [ТС] | 14 |
ЫЫ чото много ошыбок :Д ща попробую пошоманить
0
|
В астрале
8049 / 4806 / 655
Регистрация: 24.06.2010
Сообщений: 10,562
|
|
12.08.2010, 11:56 | 15 |
Andryushchenko, Скинь ошибки. Я мог быть в чем-то не прав. ЗЫ, чтобы ввести/вывести значение, в main-е соответственно пишешь. cin>>K; cout<<K;
0
|
5828 / 3479 / 358
Регистрация: 08.02.2010
Сообщений: 7,448
|
||||||
12.08.2010, 12:09 | 16 | |||||
Пример перегрузки операторов >>, <<:
0
|
0 / 0 / 0
Регистрация: 11.08.2010
Сообщений: 29
|
|
12.08.2010, 14:04 [ТС] | 17 |
Error 1 error C2059: syntax error : 'public' c:\users\admin\documents\visual studio 2008\projects\учусь\1.2\class.h 11 1.2
Error 2 error C2059: syntax error : 'public' c:\users\admin\documents\visual studio 2008\projects\учусь\1.2\class.h 13 1.2 Error 3 error C2255: 'friend' : not allowed outside of a class definition c:\users\admin\documents\visual studio 2008\projects\учусь\1.2\class.h 14 1.2 Error 4 error C2061: syntax error : identifier 'KBADRAT' c:\users\admin\documents\visual studio 2008\projects\учусь\1.2\class.h 14 1.2 Error 5 error C2805: binary 'operator >>' has too few parameters c:\users\admin\documents\visual studio 2008\projects\учусь\1.2\class.h 14 1.2 Error 6 error C2255: 'friend' : not allowed outside of a class definition c:\users\admin\documents\visual studio 2008\projects\учусь\1.2\class.h 15 1.2 Error 7 error C2061: syntax error : identifier 'KBADRAT' c:\users\admin\documents\visual studio 2008\projects\учусь\1.2\class.h 15 1.2 Error 8 error C2805: binary 'operator <<' has too few parameters c:\users\admin\documents\visual studio 2008\projects\учусь\1.2\class.h 15 1.2 Error 9 error C2062: type 'double' unexpected c:\users\admin\documents\visual studio 2008\projects\учусь\1.2\class.h 28 1.2 Error 10 error C2143: syntax error : missing ';' before '{' c:\users\admin\documents\visual studio 2008\projects\учусь\1.2\class.h 29 1.2 Error 11 error C2447: '{' : missing function header (old-style formal list?) c:\users\admin\documents\visual studio 2008\projects\учусь\1.2\class.h 29 1.2 Error 12 error C2061: syntax error : identifier 'KBADRAT' c:\users\admin\documents\visual studio 2008\projects\учусь\1.2\class.h 37 1.2 Error 13 error C2805: binary 'operator >>' has too few parameters c:\users\admin\documents\visual studio 2008\projects\учусь\1.2\class.h 38 1.2 Error 14 error C2065: 'Ob' : undeclared identifier c:\users\admin\documents\visual studio 2008\projects\учусь\1.2\class.h 40 1.2 Error 15 error C2228: left of '.a' must have class/struct/union c:\users\admin\documents\visual studio 2008\projects\учусь\1.2\class.h 40 1.2 Error 16 error C2061: syntax error : identifier 'KBADRAT' c:\users\admin\documents\visual studio 2008\projects\учусь\1.2\class.h 43 1.2 Error 17 error C2805: binary 'operator <<' has too few parameters c:\users\admin\documents\visual studio 2008\projects\учусь\1.2\class.h 44 1.2 Error 18 error C2065: 'Ob' : undeclared identifier c:\users\admin\documents\visual studio 2008\projects\учусь\1.2\class.h 45 1.2 Error 19 error C2228: left of '.a' must have class/struct/union c:\users\admin\documents\visual studio 2008\projects\учусь\1.2\class.h 45 1.2 Error 20 error C2588: '::~KBADPAT' : illegal global destructor c:\users\admin\documents\visual studio 2008\projects\учусь\1.2\class.h 48 1.2 Error 21 error C4430: missing type specifier - int assumed. Note: C++ does not support default-int c:\users\admin\documents\visual studio 2008\projects\учусь\1.2\class.h 49 1.2 Warning 22 warning C4508: 'KBADPAT' : function should return a value; 'void' return type assumed c:\users\admin\documents\visual studio 2008\projects\учусь\1.2\class.h 50 1.2 Error 23 error C2059: syntax error : '}' c:\users\admin\documents\visual studio 2008\projects\учусь\1.2\class.h 51 1.2 Error 24 error C2143: syntax error : missing ';' before '}' c:\users\admin\documents\visual studio 2008\projects\учусь\1.2\class.h 51 1.2 Error 25 error C2059: syntax error : '}' c:\users\admin\documents\visual studio 2008\projects\учусь\1.2\class.h 51 1.2 Error 26 error C2146: syntax error : missing ';' before identifier 'K' c:\users\admin\documents\visual studio 2008\projects\учусь\1.2\1.2.cpp 8 1.2 Warning 27 warning C4551: function call missing argument list c:\users\admin\documents\visual studio 2008\projects\учусь\1.2\1.2.cpp 8 1.2 Error 28 error C3861: 'K': identifier not found c:\users\admin\documents\visual studio 2008\projects\учусь\1.2\1.2.cpp 8 1.2 Error 29 error C2065: 'K' : undeclared identifier c:\users\admin\documents\visual studio 2008\projects\учусь\1.2\1.2.cpp 9 1.2 Error 30 error C2228: left of '.pr' must have class/struct/union c:\users\admin\documents\visual studio 2008\projects\учусь\1.2\1.2.cpp 9 1.2 Error 31 error C2065: 'K' : undeclared identifier c:\users\admin\documents\visual studio 2008\projects\учусь\1.2\1.2.cpp 9 1.2 Error 32 error C2065: 'K' : undeclared identifier c:\users\admin\documents\visual studio 2008\projects\учусь\1.2\1.2.cpp 10 1.2 Error 33 error C2228: left of '.Show' must have class/struct/union c:\users\admin\documents\visual studio 2008\projects\учусь\1.2\1.2.cpp 10 1.2 Error 34 error C2065: 'K' : undeclared identifier c:\users\admin\documents\visual studio 2008\projects\учусь\1.2\1.2.cpp 10 1.2 //Я все разместил в .h я не знаю что такое острим ((( если можно дайте инфу мну темному #include <stdio.h> #include "iostream" using namespace std; class KBADPAT { friend void f(); }; void f(); public: double a; public: friend istream& operator >>(istream& is, KBADRAT&Ob); friend ostream& operator <<(ostream& os, KBADRAT&Ob); double pr (KBADPAT L) { double P; P=a*4; return P; } double sq (KBADPAT L) { double S; S=a*a; return S; }; KBADPAT (double _a) { a=_a; } void Show (KBADPAT L) { cout<<"Perimetr: "<<pr(L)<<endl; cout<<"Square: "<<sq(L)<<endl; } istream& operator >>(istream& is, KBADRAT&Ob) { cout<<"Enter size of square: "; is>>Ob.a; } ostream& operator <<(ostream& os, KBADRAT&Ob) { os<<"Size of square: "<< Ob.a <<'\n'; return os; } ~KBADPAT() { }; }; P.S. скорее всего я что то не туда ввел ...
0
|
В астрале
8049 / 4806 / 655
Регистрация: 24.06.2010
Сообщений: 10,562
|
|
12.08.2010, 14:06 | 18 |
Andryushchenko, ой ой ой... Сейчас подправлю код.
0
|
0 / 0 / 0
Регистрация: 11.08.2010
Сообщений: 29
|
|
12.08.2010, 14:08 [ТС] | 19 |
ага суть я уловил ... токо что такое istream and ostream я не знаю(( темный я-- хотя если я чисто теоретически предоложу то ето для вывода и ввода на екран ?? если да то я просто не таким пользуюсь и не сразу уловил суть не таким записом я сразу библиотеку подключаю а не в коде вставляю))
0
|
В астрале
8049 / 4806 / 655
Регистрация: 24.06.2010
Сообщений: 10,562
|
|||||||||||
12.08.2010, 14:15 | 20 | ||||||||||
std::ostream - потоковый класс вывода
std::istream - потоковый класс ввода Самый логичный способ продемонстрировать использование Friend функций.
0
|
12.08.2010, 14:15 | |
12.08.2010, 14:15 | |
Помогаю со студенческими работами здесь
20
Friend function Virtual friend function Friend function and Overload <<(>>) friend function C++ and operator :: Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |