Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.67/3: Рейтинг темы: голосов - 3, средняя оценка - 4.67
skill_
0 / 0 / 0
Регистрация: 02.04.2010
Сообщений: 23
1

operator = для объекта, содержащего CStdioFile

16.06.2011, 12:16. Просмотров 555. Ответов 7
Метки нет (Все метки)

Приветствую всех.

Возникла проблема с реализацией оператора присваивания для класса, содержащего CStdioFile.
Получить копию CStdioFile мне не удалось... метод Duplicate() в нем не реализован почему-то.
Попробовал вместо CStdioFile хранить ссылку, но тогда после копирования, когда удаляется временный объект вызывается деструктор, который благополучно закрывает файл по ссылке.

Подскажите, плз, как обойти эти трудности.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.06.2011, 12:16
Ответы с готовыми решениями:

Class & operator's |Error: undefined reference to operator
Компилирует нормально, но когда хочу использовать оператор выдает...

CStdioFile не поддерживает чтение файлов в формате Unicode. Что делать?
К сожалению CStdioFile не поддерживает чтение текстовых файлов в формате...

operator char() или operator int()
Здорова госпдо! Снова ничо не ясно как всегда. Разбираю программку из книги...

Вызов operator[] через operator[] const
Перелистывал Майерса, наткнулся на код, подскажите пожалуйста почему он...

Свойство объекта в виде массива char заполняется только для одного объекта
Есть два свойства: одно - string, второе - массив char. Если начать заполнять...

7
insolent
827 / 345 / 64
Регистрация: 30.01.2009
Сообщений: 1,204
16.06.2011, 12:32 2
skill_, можно ввести счетчик объектов, которые указывают на данный файл и следить, пока не будет удален последний объект, указывающий на данный файл.
0
sandye51
программист С++
833 / 592 / 147
Регистрация: 19.12.2010
Сообщений: 2,016
16.06.2011, 14:13 3
skill_, статические переменные юзай
0
skill_
0 / 0 / 0
Регистрация: 02.04.2010
Сообщений: 23
16.06.2011, 15:19  [ТС] 4
sandye51
Да, а можно вообще на C# программы писать, там таких проблем нету.

insolent
А можно поподробнее, как это сделать?
0
sandye51
программист С++
833 / 592 / 147
Регистрация: 19.12.2010
Сообщений: 2,016
16.06.2011, 15:26 5
skill_, а в с++ есть проблемы чтоли? статические переменные с++ тоже поддерживает, если ты не знал

зачем какие-то счетчики ссылок, когда статические переменные здесь самое то
0
skill_
0 / 0 / 0
Регистрация: 02.04.2010
Сообщений: 23
16.06.2011, 15:48  [ТС] 6
Статические переменные здесь не самое то. Хочется услышать ответы по существу.
0
silent_1991
Эксперт С++
5009 / 3069 / 270
Регистрация: 11.11.2009
Сообщений: 7,043
Завершенные тесты: 1
16.06.2011, 17:15 7
skill_, и чем же вас статические переменные не устроили? Вы так лихо этот вариант отмели, что создаётся впечатление, будто вы даже и не поняли, что именно вам посоветовали.
0
skill_
0 / 0 / 0
Регистрация: 02.04.2010
Сообщений: 23
17.06.2011, 09:41  [ТС] 8
Да нет, я понял, но мне нужно использовать динамический массив таких объектов, и создавать(или переинициализировать в случае указателей) статические члены - уж очень не удобно.

Добавлено через 15 часов 54 минуты
Полностью согласен с тем что архитектура такой реализации не блещет изяществом.
Однако в силу специфики использования данного класса это наиболее разумный по соотношению затрат к результату вариант.

В итоге я отказался от оператора присваивания, использовав ссылки на объекты этого класса.
Спасибо всем за помощь, многие советы были полезными.
0
17.06.2011, 09:41
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
17.06.2011, 09:41

При возврате объекта из функции пишет, что для объекта не определен констуктор копирования
Пишу шаблонный класс матриц. Делаю, значит, переопределение оператора + для...

Реализация operator + через operator +=
внутри следующей темы возник вопрос, ответ на который так и не был получен:...

Перегрузить операторы operator+() и operator*() в пользовательском классе "Комплексное число"
Здравствуйте. Предлагаю заняться арифметикой. Создал прослейший класс,...


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

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

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