|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
03.06.2011, 20:30 | #1 |
Форумчанин
Регистрация: 10.09.2009
Сообщений: 352
|
Хороший стиль программирования на чистом С - работа с объектами
Ситуация такая. Раньше в моей проге на С были объекты, с которыми я работал так:
Код:
Теперь у меня в проге появились объекты ссылочного типа, т.е. сборка мусора с подсчётом ссылок. Соответственно, у объектов появились функции FzObject_IncRef и FzObject_DefRef. Так вот, после вызова удаления ссылки может вызваться деструктор FzObject_Destroy, если была всего одна ссылка. А в коде, вызвавшем FzObject_DecRef, указатель на объект будет указывать на освобождённую память. Собственно, вопрос в том, как реализовать это всё максимально безопасно? Была идея передавать в методы объекта указатель на указатель на объект, чтобы ему при уничножении объекта можно было присвоить 0, и тогда в коде, вызвавшем FzObjecr_DecRef указатель станет равен нулю. Но что-то мне эта идея не нравится, слишко много операций взятия адреса/разыменовывания. Есть идеи? |
07.06.2011, 23:48 | #2 |
Телепат с дипломом
Старожил
Регистрация: 10.06.2007
Сообщений: 4,929
|
Есть либа сишная, к-рая делает из Си практически объектный язык, вот только не помню как она называется. Она очень известная. Возможно GLib, но не уверен что правильно помню.
The future is not a tablet with a 9" screen no more than the future was a 9" black & white screen in a box. It’s the paradigm that survives. (Kroc Camen)
Проверь себя! Онлайн тестирование | Мой блог |
08.06.2011, 00:20 | #3 |
C++ hater
СтарожилДжуниор
Регистрация: 19.07.2009
Сообщений: 3,333
|
2anyx
Код:
2mutabor да, в glib есть gc, но он видимо свой хочет написать
I invented the term Object-Oriented, and I can tell you I did not have C++ in mind. (c)Alan Kay
My other car is cdr. Q: Whats the object-oriented way to become wealthy? A: Inheritance |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
C# интерфейсы и "хороший стиль" | D][mon | Помощь студентам | 1 | 24.04.2011 22:00 |
Выбор языка программирования для работы с объектами сторонних приложений... | Smerch66 | Общие вопросы по программированию, компьютерный форум | 3 | 30.03.2011 01:54 |
Стиль программирования | Fataller | Обсуждение статей | 7 | 21.09.2010 22:30 |
Хороший стиль программирования | DimOn4Ik | Свободное общение | 17 | 10.05.2010 01:12 |
Стиль программирования на С/С++ | AddisAbeba | Общие вопросы C/C++ | 36 | 27.12.2008 00:48 |