|
|
|
"property" в C++, и не только C++ Builder
|
|||
|---|---|---|---|
|
#18+
Привет! Позавчера в одном топике выложил свою разработку 2002 года, возможно, окажется полезной для кого-нибудь. Это поддержка "property в C++. Конечно, реализуемая не средствами языка. (вообще не знаю, нужно ли это хоть кому-нибудь, но для меня, пересевшего тогда в 2002 на Visual C с Delphi/C Builder отсутствие свойств у классов казалось неудобством. Итак, для начала, пример использования Код: plaintext 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. 38. 39. 40. 41. желтым показал, собственно, использование свойств а теперь реализация шаблонов для свойств Код: plaintext 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. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72. 73. 74. 75. 76. 77. 78. 79. 80. 81. 82. 83. 84. 85. 86. 87. 88. 89. 90. 91. 92. 93. 94. 95. 96. 97. 98. 99. 100. 101. 102. 103. 104. 105. 106. 107. 108. 109. 110. 111. 112. 113. 114. 115. 116. 117. 118. 119. 120. 121. 122. 123. 124. 125. 126. 127. 128. 129. 130. 131. 132. 133. 134. 135. 136. 137. 138. 139. 140. 141. 142. 143. 144. 145. 146. 147. 148. 149. 150. 151. 152. 153. 154. 155. 156. 157. 158. 159. 160. 161. 162. 163. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.06.2007, 18:21 |
|
||
|
"property" в C++, и не только C++ Builder
|
|||
|---|---|---|---|
|
#18+
Кроик Семён wrote: > Привет! > > Позавчера в одном топике выложил свою разработку 2002 года, возможно, > окажется полезной для кого-нибудь. Это поддержка "property в C++. Конечно, > реализуемая не средствами языка. (вообще не знаю, нужно ли это хоть > кому-нибудь, но для меня, пересевшего тогда в 2002 на Visual C с Delphi/C > Builder отсутствие свойств у классов казалось неудобством. Вообще идея отличная (офигительная, если честно. Сижу и думаю, почему сам не додумался :)), спасибо :). пара комментов: Вместо Код: plaintext 1. Код: plaintext 1. 2. Потом: Код: plaintext 1. Зато вот это: Код: plaintext 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. Код: plaintext 1. 2. 3. 4. 5. ИМХО, неплохо было бы const модификаторы добавить к аргументам и результатам get/set функций. Вообще идея классная :). Если захотеть, можно на этой основе VCL на C++ накатать :) - так как возможности дает очень богатые и основные фишки, которые мне нужны были от борландовского проперти, на её базе можно получить. ("Виртуальные" property, индексированные property и т.д. и т.п.). Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.06.2007, 20:06 |
|
||
|
"property" в C++, и не только C++ Builder
|
|||
|---|---|---|---|
|
#18+
Рад, что идея понравилась. Я тогда кучу документации перерыл, не мог понять, почему не получается написать перегруженную операцию присваивания для случая, когда свойство стоит справа от знака равно . Пока в одном обсуждении мне, уже отчаявшемуся, не подсказали, что это, на самом деле, cast -оператор. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.06.2007, 20:32 |
|
||
|
"property" в C++, и не только C++ Builder
|
|||
|---|---|---|---|
|
#18+
PS если кто будет развивать дальше, то вот мой совет - не стот объединять в один шаблоны Код: plaintext 1. 2. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.06.2007, 21:21 |
|
||
|
"property" в C++, и не только C++ Builder
|
|||
|---|---|---|---|
|
#18+
Код: plaintext 1. 2. 3. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.06.2007, 22:03 |
|
||
|
"property" в C++, и не только C++ Builder
|
|||
|---|---|---|---|
|
#18+
согласен, предложение разумное :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.06.2007, 23:10 |
|
||
|
"property" в C++, и не только C++ Builder
|
|||
|---|---|---|---|
|
#18+
_maXmo wrote: > //не лучше сделать По-моему это детали, и реализацию каждый сделать волен сам как ему удобно. Главное - идея, а развить её и переделать для себя несложно :) Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.06.2007, 00:33 |
|
||
|
"property" в C++, и не только C++ Builder
|
|||
|---|---|---|---|
|
#18+
зачем вообще оно это все надо? мало ..GetValue(), SetValue(..) ? вот здесь: http://www.rsdn.ru/article/vcpp/props.xml тоже "дворники к велосипеду" приделывают, если кому интересно ;-) (2 Кроик: а вообще, молодец, что свой open source выкладываешь, может кто воспользуется. Пиши еще) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.06.2007, 01:20 |
|
||
|
"property" в C++, и не только C++ Builder
|
|||
|---|---|---|---|
|
#18+
f i xit wrote: > зачем вообще оно это все надо? Потому что property удобней. (IMHO). Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.06.2007, 03:05 |
|
||
|
"property" в C++, и не только C++ Builder
|
|||
|---|---|---|---|
|
#18+
f i xit вот здесь : http://www.rsdn.ru/article/vcpp/props.xml тоже "дворники к велосипеду" приделывают, если кому интересно ;-) Здорово, это ведь та же самая идея , что и у меня была. Спасибо за ссылку. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.06.2007, 10:21 |
|
||
|
"property" в C++, и не только C++ Builder
|
|||
|---|---|---|---|
|
#18+
ErV f i xit wrote: > зачем вообще оно это все надо? Потому что property удобней. (IMHO). Posted via ActualForum NNTP Server 1.4 имхо эффект "удобности" не превышает затрате на "телодвижения" вокруг. ;-) П.С. из той же статьи (сорри за копи-пасте): ...Однако, описанный метод не лишен недостатков: - При каждом обращении к "свойству" происходит два вызова функции. - Использование таких "свойств" требует дополнительных затрат памяти из-за того, что на каждое "свойство" требуется 3 дополнительных указателя, что составляет 12 байт накладных расходов. - Использование шаблонов приводит к увеличению размеров исполняемого кода, поскольку компилятор будет генерировать отдельный класс для каждой пары "proptype" и "propowner". - Для каждого "свойства" необходимо не забыть произвести инициализацию в конструкторе класса-владельца. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.06.2007, 10:56 |
|
||
|
"property" в C++, и не только C++ Builder
|
|||
|---|---|---|---|
|
#18+
f i xit wrote: > имхо эффект "удобности" не превышает затрате на "телодвижения" вокруг. Просто мне модель property кажется более логичное, чем get/set, так как property явно представляет объект, изменяемый get/set функциями. ЗЫ. Спорить не буду. Мне property надо - буду юзать. Вам не надо - не юзайте :). Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.06.2007, 13:05 |
|
||
|
|

start [/forum/topic.php?fid=57&fpage=291&tid=2028730]: |
0ms |
get settings: |
5ms |
get forum list: |
8ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
46ms |
get topic data: |
7ms |
get forum data: |
1ms |
get page messages: |
40ms |
get tp. blocked users: |
1ms |
| others: | 197ms |
| total: | 309ms |

| 0 / 0 |
