27 / 27 / 18
Регистрация: 13.09.2014
Сообщений: 137
1

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

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

Author24 — интернет-сервис помощи студентам
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
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
27.10.2014, 14:27
Ответы с готовыми решениями:

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

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

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

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

2
4262 / 3321 / 925
Регистрация: 25.03.2012
Сообщений: 12,502
Записей в блоге: 1
27.10.2014, 14:33 2
а он вообще знает, что такое ostream?
iostream то подключен?
а namespace std?
1
27 / 27 / 18
Регистрация: 13.09.2014
Сообщений: 137
27.10.2014, 14:45  [ТС] 3
Kuzia domovenok, спасибо, заработало. В CArr.h <iostream> не было
0
27.10.2014, 14:45
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
27.10.2014, 14:45
Помогаю со студенческими работами здесь

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

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

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

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


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru