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

error C2248 - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ C++ структуры. Копировать http://www.cyberforum.ru/cpp-beginners/thread1087642.html
void zadanie12() { struct Univer{ char *fam; char *kaf; char *dol; double zar;}; Univer *p1=new Univer; Univer *p2=new Univer; p1->fam="Игнатенко.О.М";
C++ Как это работает? Доброго времени суток. Граждане программисты, подскажите пожалуйста как работает данный кусок кода??? А точнее дружественные функции friend istream& operator>>(istream& s, employee& e) и friend ostream& operator<<(ostream& s, employee& e); 1)friend istream& operator>>(istream& s, employee& e) и friend ostream& - дружественная, перегруженная функция, которая возвращает значение класса... http://www.cyberforum.ru/cpp-beginners/thread1087634.html
C++ Как вывести содержимое всего файла на экран, принтер, файл?
В книгах уйма информации, я уже не могу ее переваривать. А практику сдавть нужно завтра. Помогите если не сложно.
появилась загвоздка с функцией. нужно вывести на экран строку, сост. из звездочек. Длина строки-параметр функциииз звезд. длина строки - C++
Я видела, что на форуме есть подобные задачи, но ни одно из их решений не работает на моем dev cpp.:( вот вариант решения, но он не работает. Посмотрите пжл в чем проблема? #include <iostream> #include <string> string function (int k) { std::cout<<std::string(_count,"*"); } function (15); return 0; }
C++ Как менять синус на косинус и наоборот в цикле http://www.cyberforum.ru/cpp-beginners/thread1087618.html
Как менять синус на косинус и наоборот в цикле
C++ Непонятное поведение Всем привет! В книге "Прата - Язык программирования C++. Лекции и управжения 2011" нашёл вот такой пример: const free_throws &clone( free_throws &ft ) { free_throws *pt; *pt = ft; return *pt } подробнее

Показать сообщение отдельно
DU
1483 / 1059 / 45
Регистрация: 05.12.2011
Сообщений: 2,279
02.02.2014, 16:41
Ошибка при попытке засунуть File в вектор т.к. для этого требуется конструктор копирования, а дефолтный
не прокатывает, т.к. std::ifstream, который внутри File не умеет копироваться. только мувиться.

странно что запихивание ifstream в поинтеры не решили проблему. я так понял новый стандарт доступен.
значит можно так:
std::shared_ptr<std::ifstream> file;
но тут нужно понимать, что во всех копиях File они будут ссылаться на один и тот же стрим. Эсли это то, что вам нужно - то ок. Если нет - то нужно описать какое поведение вы хотите. И странно что мув конструкторы и операторы = не помогли. Как пробовали?

вот такое попробуйте:
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
#include <iostream>
#include <fstream>
#include <vector>
 
class File
{
public:
  File()
  {
  }
 
  File(File&& other)
    : m_file(std::move(other.m_file))
  {
  }
 
  File& operator = (File&& other)
  {
    m_file = std::move(other.m_file);
    return *this;
  }
 
private:
  File(const File&);
  File& operator = (const File&);
 
  std::ifstream m_file;
};
 
 
int main()
{
  File file;
  std::vector<File> vec;
  vec.push_back(std::move(file));
  return 0;
}
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru