Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 21.02.2014, 15:34   #1
Mikhal2406
 
Регистрация: 21.02.2014
Сообщений: 3
По умолчанию Проблема с потоковыми итераторами

Всегда удавалось выводить содержимое контайнеров базовых типов через потоковые итераторы и алгоритм copy. Нокогда контейнеры содержат структурные объекты при вызове оного алгоритма выскакивает ошибка.
Компилятор заявляет что конструктор либо не доступен либо объявлен как explicit.
Код:
#include <iostream>
#include <fstream>
#include <algorithm>
#include <vector>
#include <map>
#include <iterator>
#include <string>
using namespace std;
class Student
{
private:
	string name;
	int group;
	double mark;
public:
	Student ()
	{    }
	Student(Student& a)
	{
		name=a.name;
		group=a.group;
		mark=a.mark;
	}
	Student(string name1,int group1,double mark1)
	{
		name=name1;
		group=group1;
		mark=mark1;
	}
	~Student()
	{    }
	friend ostream& operator<<(ostream& s,Student& a)
	{
		s<<a.name<<endl;
		s<<a.group<<endl;
		s<<a.mark<<endl;
		return s;
	}
	friend istream& operator>>(istream& s,Student& a)
	{
		s>>a.name;
		s>>a.group;
		s>>a.mark;
		return s;
	}
	Student& operator=(Student& b)
	{
		name=b.name;
		group=b.group;
		mark=b.mark;
		return *this;
	}
};
int main()
{
	ifstream myfile;
	myfile.open("List.txt");
	vector<Student> vec;
	istream_iterator<Student> studit(myfile);
	istream_iterator<Student> end_of_stream;
	copy(studit,end_of_stream,back_inserter(vec));
	return 0;
}

Последний раз редактировалось Stilet; 21.02.2014 в 15:49.
Mikhal2406 вне форума Ответить с цитированием
Старый 21.02.2014, 16:40   #2
Rififi
Старожил
 
Регистрация: 19.08.2009
Сообщений: 2,119
По умолчанию

Mikhal2406

у тебя неправильно описан конструктор копирования (который кстати здесь вообще не нужен)
так же, как и не нужны конструктор по-умолчанию и деструктор
Rififi вне форума Ответить с цитированием
Старый 21.02.2014, 18:42   #3
waleri
Старожил
 
Регистрация: 13.07.2012
Сообщений: 6,331
По умолчанию

То же относится и к оператору присваивания.
waleri вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Неблокирующий сокет Си проблема с закрытием, проблема с закрытием сокетов в цикле mnx_vol C/C++ Сетевое программирование 0 06.11.2012 13:57
Проблема с рамами/Проблема с ЖД DRAGGER Компьютерное железо 6 04.01.2009 23:37