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

операция извлечения из потока для пользовательского типа - C++

Восстановить пароль Регистрация
 
solomon123
0 / 0 / 0
Регистрация: 25.01.2013
Сообщений: 18
16.03.2013, 18:23     операция извлечения из потока для пользовательского типа #1
Всем доброго дня! Я тренируюсь перегружать операторы извлечения из потока и операторы передачи в поток. Операцию передачи в поток я перегрузила, в вот извлечение из потока что-то не работает, помогите плиз понять или я ее неправильно перегрузила или я ее неправилно вызываю в мейн?

//вот хедер файл
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <iostream>
using std::ostream;
using std::istream;
using std::cin;
using std::cout;
#include <iomanip>
using std::setw;
 
class PointP
{
public:
    friend ostream &operator<<(ostream &, const PointP &);
    friend istream &operator>>(istream &, PointP &);
    
    PointP(int = 0, int = 0);
    ~PointP();
private:
    int xCoordinate;
    int yCoordinate;
};

// файл реализации
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include "PointP.h"
 
ostream &operator<<(ostream & output, const PointP & myPoint)
{   output << "xCoordinate is " << myPoint.xCoordinate 
        << "\nyCoordinate is :" << myPoint.yCoordinate;
    return output;
}
 
istream &operator>>(istream & input, PointP &myPoint)
{   input >> setw(1) >> myPoint.xCoordinate;
    input.ignore();
    input >> setw(1) >> myPoint.yCoordinate;
    return input;
}
PointP::PointP(int x, int y)
    : xCoordinate(x), yCoordinate(y)
{   
}
 
PointP::~PointP(void)
{
}
// и вот мейн
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <iostream>
using namespace std;
 
#include <iomanip>
using std::left;
using std::right;
 
#include "PointP.h"
 
int main()
{   
    PointP object1(-9, 8);
    PointP object2();
    cout << object1;
    cout << "\nEnter data for a new object: " ;
    cin >> object2;  // вот тут компилятор ругается
    cin.get();
    return 0;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.03.2013, 18:23     операция извлечения из потока для пользовательского типа
Посмотрите здесь:

C++ Передача в контейнер map пользовательского типа данных
Массив объектов пользовательского типа в vector C++
Вектор пользовательского типа данных C++
Преобразование типа из пользовательского в стандартный и из стандартного в пользовательский C++
Преобразование пользовательского типа, friend C++
C++ Создание пользовательского типа данных
C++ Как создать шаблон для пользовательского и встроенного типа?
Можно ли присвоить объекту основного типа значение объекта пользовательского типа? C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
anmartex
...
 Аватар для anmartex
1699 / 1192 / 494
Регистрация: 12.02.2013
Сообщений: 1,978
16.03.2013, 19:19     операция извлечения из потока для пользовательского типа #2
В функции main 13-ая строчка. Если вы инициализируете объект без параметров, то скобок стоять не должно, ибо данная запись будет интерпретироваться компилятором как объявление прототипа функции.
solomon123
0 / 0 / 0
Регистрация: 25.01.2013
Сообщений: 18
16.03.2013, 19:24  [ТС]     операция извлечения из потока для пользовательского типа #3
Цитата Сообщение от anmartex Посмотреть сообщение
В функции main 13-ая строчка. Если вы инициализируете объект без параметров, то скобок стоять не должно, ибо данная запись будет интерпретироваться компилятором как объявление прототипа функции.

огромнейшее спасибо Вам! Скобки убрала и все работает теперь отлично!
Yandex
Объявления
16.03.2013, 19:24     операция извлечения из потока для пользовательского типа
Ответ Создать тему
Опции темы

Текущее время: 05:39. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru