Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.50/6: Рейтинг темы: голосов - 6, средняя оценка - 4.50
notemac
27 / 27 / 18
Регистрация: 13.09.2014
Сообщений: 137
1

Friend ostream& operator<<(ostream& stream, CArr& obj);

27.10.2014, 14:27. Просмотров 1093. Ответов 2
Метки нет (Все метки)

CArr.h
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
#pragma once
class CArr{
    int* arr = nullptr;
    int size = 10;
    void swap(int *a, int *b);
    void swap(int &a, int &b);
    friend ostream& operator<<(ostream& stream, CArr& obj);
    friend istream& operator>>(istream& stream, CArr& obj);
public:
    CArr();
    CArr(const int size);
    CArr(const CArr& obj);
    CArr& operator=(const CArr& obj);
    CArr operator+(const CArr& obj);
    CArr operator-(const CArr& obj);
    int& operator[](const int& index);
    bool operator>(const CArr& obj);
    bool operator<(const CArr& obj);
    bool operator==(const CArr& obj);
    bool operator!=(const CArr& obj);
    bool operator>=(const CArr& obj);
    bool operator<=(const CArr& obj);
    void sort(const int flag);
    ~CArr();
};
CArr.cpp
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
ostream& operator<<(ostream& stream, CArr& obj) {
    for (int i = 0; i < obj.size; i++) {
        stream << obj.arr[i] << ' ';
    }
    cout << endl;
    return stream;
}
istream& operator>>(istream& stream, CArr& obj) {
    for (int i = 0; i < obj.size; i++) {
        stream >> obj.arr[i];
    }
cout << endl;
    return stream;
}
Во время компиляции подчеркивает почему-то в реализации obj.size и obj.arr[i] в istream и в ostream.
Запускаю, ошибки:
C++
1
2
3
Error   7   error C2433: 'istream' : 'friend' not permitted on data declarations
Error   2   error C2433: 'ostream' : 'friend' not permitted on data declarations
Error   5   error C2805: binary 'operator <<' has too few parameters
и другие. Я так понял это из-за friend, как исправить?
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.10.2014, 14:27
Ответы с готовыми решениями:

friend ostream &operator<<(ostream &stream, MyClass o);
Что означает данная строчка которую обычно пишут в конце класса? friend...

ostream &operator<< (ostream &output, const Array &obj) - что означает эта строка?
void Array::getArray() // вывод массива { for (int ix = 0; ix &lt; size;...

Почему friend ostrem& operator <<(ostream& outs, const Rational&); - invalid function declaration?
Пытаюсь скомпилировать программу пишет friend ostrem&amp; operator &lt;&lt;(ostream&amp;...

Ошибка undefined reference to `operator<<(std::ostream&, Account)'
Всем здравствуйте! На днях столкнулся с ошибкой, с которой еще не раз не...

Зачем "&" в "ostream& operator<<"?
Здарова. Я представляю, что такое перегрузка операций, но вот наткнулся на...

2
Kuzia domovenok
2421 / 2151 / 525
Регистрация: 25.03.2012
Сообщений: 7,749
Записей в блоге: 1
27.10.2014, 14:33 2
а он вообще знает, что такое ostream?
iostream то подключен?
а namespace std?
1
notemac
27 / 27 / 18
Регистрация: 13.09.2014
Сообщений: 137
27.10.2014, 14:45  [ТС] 3
Kuzia domovenok, спасибо, заработало. В CArr.h <iostream> не было
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
27.10.2014, 14:45

Создайте класс, в котором есть ostream& operator<<. Класс должен содержать очередь с приоритетом
Создайте класс, в котором есть ostream&amp; operator&lt;&lt;. Класс должен содержать...

ostream& output
Что это за параметр такой, - ostream&amp; output? ostream&amp; operator&lt;&lt; (ostream&amp;...

Ошибка: multiple definition of `void std::swap<A>(A&amp;, A&amp;)
Хочу специализировать swap для своего класса. Получаю ошибку. Вот код:#ifndef...


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

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

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