Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
DavidTs
3 / 3 / 8
Регистрация: 25.11.2015
Сообщений: 127
1

Почему ругается в friend функции

13.12.2015, 14:21. Просмотров 797. Ответов 6
Метки нет (Все метки)

C++
1
2
3
4
5
std::ostream& operator<<(std::ostream& ost, const Array& Ar) {
    for(int i=0; i<m_current; i++)
        ost<<"{"<<arr[i]<<"}";
    return ost; 
}
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
#include <iostream>
 
class Array {
    friend std::ostream &operator<<(std::ostream&, const Array&);
private:    
    static const int M=100;
    int arr[M];
    int m_current;
public:
    Array() : m_current(0) {for (int i=0; i<M; i++) arr[i]=0; }
    Array(int*, int);
    int operator[](int);
    int find_by_key( int);
};
Array::Array(int* m, int K) {
    m_current=K;
    for(int i=0; i<m_current; i++)
        arr[i]=m[i];
}
std::ostream& operator<<(std::ostream& ost, const Array& Ar) {
    for(int i=0; i<m_current; i++)
        ost<<"{"<<arr[i]<<"}";
    return ost; 
}
int Array::operator[](int K) {
    if(K>0 || K>=m_current ) return;
    return arr[K];
}
Добавлено через 57 секунд
Говорит, что не имею доступ к
Цитата Сообщение от DavidTs Посмотреть сообщение
i<m_current;
и
Цитата Сообщение от DavidTs Посмотреть сообщение
arr[i]
0
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
13.12.2015, 14:21
Ответы с готовыми решениями:

friend функции не имеют доступа к private элементам класса, почему?
Учусь по Лафоре Р. - Объектно-ориентированное программирование в С++ (Классика...

Не могу обратиться к Privat члену класса из ф-и Friend. Почему?
не нашел ответ на свой вопрос... есть класс class Product { char cmName,...

Перегрузка операторов, friend или нет friend?
Всем здравствуйте. Есть такой вопрос: при перегрузке операторов в классе(пусть...

Классы. Программирование алгоритмов с использованием конструктора, деструктора, friend - функции инициализации set() и функции вывода результатов pri
Братаны, выручайте! Общая постановка. Пользовательский класс Х должен...

Классы. Программирование алгоритмов с использованием конструктора, деструктора, friend - функции инициализации set() и функции вывода результатов prin
Братаны, выручайте!:help: Общая постановка. Пользовательский класс Х должен...

6
nmcf
6515 / 5744 / 2617
Регистрация: 14.04.2014
Сообщений: 24,494
13.12.2015, 14:37 2
А почему они у тебя не в public?
0
DavidTs
3 / 3 / 8
Регистрация: 25.11.2015
Сообщений: 127
13.12.2015, 14:39  [ТС] 3
nmcf, Почему сделать public? разве friend не имеет доступ ка private данным?
0
Kerry_Jr
Эксперт PHP
2211 / 2007 / 940
Регистрация: 14.05.2014
Сообщений: 5,869
Записей в блоге: 1
Завершенные тесты: 5
13.12.2015, 14:39 4
Лучший ответ Сообщение было отмечено DavidTs как решение

Решение

Цитата Сообщение от DavidTs Посмотреть сообщение
Говорит, что не имею доступ к
потому что не m_current, а Ar.m_current. И с arr то же самое: не arr[i], а Ar.arr[i].
0
nmcf
6515 / 5744 / 2617
Регистрация: 14.04.2014
Сообщений: 24,494
13.12.2015, 14:40 5
Я про сами эти функции, а не про данные.
0
DavidTs
3 / 3 / 8
Регистрация: 25.11.2015
Сообщений: 127
13.12.2015, 14:42  [ТС] 6
Kerry_Jr, Спасибо, не заметил.
0
Kerry_Jr
Эксперт PHP
2211 / 2007 / 940
Регистрация: 14.05.2014
Сообщений: 5,869
Записей в блоге: 1
Завершенные тесты: 5
13.12.2015, 14:45 7
Цитата Сообщение от nmcf Посмотреть сообщение
Я про сами эти функции, а не про данные.
friend можно объявлять в любой секции.
0
13.12.2015, 14:45
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
13.12.2015, 14:45

Friend-функции
из теории ясно, что friend функция — это функция, которая не является членом...

Дружественные (friend) функции
Доброго времени суток. Кратко о сути: Имеются 2 класса - Float (представляет...

Реализация friend функции
Есть код. Нужно реализовать вывод ответа через friend. Подскажите пожалуйста...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru