Форум программистов, компьютерный форум CyberForum.ru

Перегрузка оператора ввода вывода - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Эти треугольники являются подобными http://www.cyberforum.ru/cpp-beginners/thread850614.html
числа a и b выражают длинны катетов одного прямоугольного треугольника,с и d - другого. Эти треугольники являются подобными. помогите в этих программах я 0
C++ Использование LAPACK на c++ Здравствуйте! Помогите разобраться с установкой LAPACk на проект c++. Нужно реализовать алгоритмы разложений матриц. Подкиньте рабочий проект, а я уж сам потом разберусь Заранее спасибо http://www.cyberforum.ru/cpp-beginners/thread850604.html
Передача массива в функцию по ссылке C++
Здравствуйте. Есть функция: void f(int &a) { int *p=&a; p=1; } Но почему-то при попытке передать ей массив ругается дебаггер: ...|10|error: invalid initialization of non-const reference of type ‘int&’ from an rvalue of type ‘int*’| Как с этим справиться?
C++ Структура в стеке
Я наверное уже всех задолбал со своим стеком, но всё же мне еще нужна помощь)) Код, который ниже должен запрашивать у пользователя ввод структуры, которая после помещается в стеке. Так же программа может этот стек выводить и для сохранения информации я сохраняю этот стек в другом стеке :) . Но при компиляции выдает ошибку в выводе: 'class std::stack<Football>' has no member named 'fio'| и так...
C++ Работа с указателями http://www.cyberforum.ru/cpp-beginners/thread850558.html
Расскажите как работает каждая строка в коде char *A = "123456789"; unsigned B = 1; char *X = A + B; char *Y = A - (- B);
C++ Формат Шрифта Проблема в том что я не пойму какая нужна кодировка для того что бы шрифт встал на свое место перепробовал все. Мж»»БЛРВµДНшВзµЧІгЎЈ ЛµГчЈє±ѕЕдЦГОДјюКЗЕдЦГПµНіПыПўєНПµНі№«ёжµДЈ¬їЙТФФЪґЛЙиЦГПыПў·ўЛНµД Добавлено через 25 минут Извините разобрался Китайский, Корейский... подробнее

Показать сообщение отдельно
Linzman
0 / 0 / 0
Регистрация: 31.10.2012
Сообщений: 48
28.04.2013, 10:29     Перегрузка оператора ввода вывода
Есть два хэдера(header.h и Array.h) и исполняемая программа main.cpp в которой я как раз и обращаюсь к оператору ввода
Array.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
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
#pragma once
#include <iostream>
#include "header.h"
class Array:
    public Container{
    private:
        char* data;
        int length;
    public:
        Array(int n){
        data=new char[n];
        length=n;
        }
        ~Array(){
        delete[] data;
        }
        void set(int j, char i){
        data[j]=i;
        }
         char get(int j){
        return data[j];
        }
        int len(){
        return length;
        }
        std::ostream& operator<<( std::ostream& os,Array& cont){
            for(int i=0;i<cont.len();i++){
                    os<<cont.get(i)<<"\t";
                os<<'\n';
            }
        return os;
        };
        std::stream& operator>>( std::istream& is,Array& cont){
            int m;
            std::cout<<"Insert Array length";
            char a;
            std::cin>>m;
            delete[] cont.data;
            cont.data=new char [m];
            for(int i=0;i<m;i++){
                std::cout<<"Insert"<<i<<"element";
            is>>a;
            cont.set(i,a);
            }
            return is;
        };
    }
;
header.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
26
27
28
29
30
31
32
33
34
#pragma once
#include <iostream>
class Container{
protected:
    virtual char get (int j)=0;
    virtual void set (int j, char i)=0;
    virtual int len()=0;
    virtual void swap(int i,int j){
        char t;
        t=this->get(i);
        this->set(i,this->get(j));
        this->set(j,t);
    }
    virtual void SortBubble()
      {
        for (int i=0; i<this->len(); i++)
        for (int j=this->len()-1; j>i; j--)
            if (this->get(j)<this->get(j-1))
            this->swap(j, j-1);
      }
    virtual void SortChoise()
      {
        for (int i=0; i<this->len(); i++)
          {
            int k=i;
            for (int j=i+1; j<this->len(); j++)
                if (this->get(j)<this->get(k))
                     k=j;
            if (i!=k)
              this->swap(i, k);
          }
      }
 
};
main.cpp
C++
1
2
3
4
5
6
7
8
9
10
11
#include <iostream>
#include "Header.h"
#include "Array.h"
using namespace std;
 
int main()
{
    Array a();
    std::cin>>a;
    return 0;
}
При компиляции MinGW пишет */main.cpp:9: ошибка: ambiguous overload for 'operator>>' in 'std::cin >> a'. Помогите решить проблему, очень прошу ))
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 21:52. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru