Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
 
Рейтинг 4.88/34: Рейтинг темы: голосов - 34, средняя оценка - 4.88
2 / 2 / 1
Регистрация: 21.11.2011
Сообщений: 183
1

Класс содержащий объект типа ofstream - не компилится!

28.07.2012, 14:03. Просмотров 6753. Ответов 21
Метки нет (Все метки)

Здравствуйте! Помогите пожалуйста!=)

есть код:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <fstream>
 
    class Monstr
    {
        private:
            std::ofstream out;
        public:
            Monstr() : out("test", std::ios::app | std::ios::out){}
            ~Monstr();
    };
 
 
int main(void)
{
    Monstr Y;
    Monstr X(Y);
    system("pause");
    return 0;
}
есть ошибка:

1>c:\program files\microsoft visual studio 10.0\vc\include\ostream(604): error C2249: std::basic_ios<_Elem,_Traits>::operator =: нет доступного пути к private член, объявленному в виртуальном базовом классе "std::basic_ios<_Elem,_Traits>"
1> with
1> [
1> _Elem=char,
1> _Traits=std::char_traits<char>
1> ]
1> c:\program files\microsoft visual studio 10.0\vc\include\ios(177): см. объявление "std::basic_ios<_Elem,_Traits>::operator ="
1> with
1> [
1> _Elem=char,
1> _Traits=std::char_traits<char>
1> ]
1> Сообщение диагностики возникло в созданной компилятором функции "std::basic_ostream<_Elem,_Traits> &std::basic_ostream<_Elem,_Traits>::operator =(const std::basic_ostream<_Elem,_Traits> &)"
1> with
1> [
1> _Elem=char,
1> _Traits=std::char_traits<char>
1> ]
1>


Почему?

Добавлено через 5 минут
И если размещают объекты класса [i/o]fstream в классе, то как? Или что-то в конструкторе копирования для этого делают обычно? И еще, как вернуть имя файла, на который ссылается объект класса [i/o]fstream. Т.е.

ofstream out1("test");
ofstream out2(out.вернуть_имя_файла);?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
28.07.2012, 14:03
Ответы с готовыми решениями:

Есть объект типа T, но если вместо него подставить вызов функции, возвращающей T, код не компилится, почему?
Есть объект типа vector&lt;int&gt;, но если вместо него подставить вызов функции, возвращающей...

Класс, содержащий объект своего класса
Если класс содержит объект своего класса. Почему при создании объекта такого класса не создается...

Объявить класс содержащий 1 переменную А закрытого типа.
объявить класс содержащий 1 переменную А закрытого типа. И функцию которая считывает переменную...

Сериализовать класс, содержащий экземпляры других классов и листы с объектами типа object
Не получается сериализовать класс, содержащих экземпляры других классов и листы с объектами типа...

21
2 / 2 / 1
Регистрация: 21.11.2011
Сообщений: 183
30.07.2012, 11:01  [ТС] 21
Спасибо!+)
0
Эксперт С++
2119 / 1558 / 231
Регистрация: 29.05.2011
Сообщений: 3,236
31.07.2012, 16:04 22
Цитата Сообщение от Alberto_Timakov Посмотреть сообщение
C++
1
2
3
4
5
6
            ~Monstr()
            {
                //std::ofstream out("test", std::ios::app | std::ios::out);
                *out << "destructor" << std::endl;
                (*out).close();
            }
Всё-таки, пожалуй, в таком виде деструктор скорее вреден, чем полезен.
Допустим, создали объект obj1, потом он скопировался в объект obj2, потом один из этих объектов разрушили. При этом закрывается общий файл. Не надо явно закрывать поток в деструкторе, он и сам прекрасно закроется, когда будет разрушаться объект потока.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
31.07.2012, 16:04

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Создать класс вектор, содержащий элементы типа long double, размерность вектора
срочно!!!!!!!!!!! Пожалуйстаааа Задание 3. Создать класс вектор, содержащий элементы типа long...

Объявить класс, содержащий поле целого типа две константы, задающие допустимый диапазон
задание такое :5. Объявить класс, содержащий поле целого типа две константы, задающие допустимый...

Создайте класс Тест, содержащий две закрытые переменные типа int с именами count и max

Определить класс химический элемент, содержащий информацию о названии элемента его химических свойствах. Определить класс медикаменты, содержащий разн
Определить класс химический элемент, содержащий информацию о названии элемента его химических...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2020, vBulletin Solutions, Inc.