![]() |
|
Модераторы: Daevaorn |
![]()
|
|
| ManiaK |
|
|||
![]() Homo Sapience ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 1145 Регистрация: 3.8.2004 Где: ИУ5-93 Репутация: 5 Всего: 29 |
Не бейте пиониста: он играет как может:)
Обойти наследование можно, но для этого нужно время. У меня его не шибко много. Если кто-то захочет переделать мою статью - бога ради, я не обижусь:) Так уж и быть, убью константы, где это ни на что не повлияет. Уболтали:) |
|||
|
||||
| kometa_triatlon |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 384 Регистрация: 7.1.2005 Где: Киев Репутация: 2 Всего: 6 |
Чем дальше в лес, тем толще партизаны...
Куда вы залезли? Зачем это тем, кто начинает изучать? Господи, перегрузка, шаблоны, классы... Да новичок испугается и сразу закроет статью, к тому же не поймет ничего. Так что есть предложение перенести пару этих постов в отдельную тему, например "Нюансы использования строк", "Строки для продвинутых" или что-то такое. А то тема переросла в что-то несистематическое и непонятное. Как будто выбросили хороший кусок посредине. И нет самого основного - работы со строками. По-моему, остается еще нераскрытый вопрос: арифметические операции с указателями в применении к строкам. То есть операции типа str++, (array+4)*... Void кстати показал хороший пример на эту тему, но раз у него сессия... Это сообщение отредактировал(а) kometa_triatlon - 31.5.2005, 22:18 -------------------- Всё очень просто: сказки обман, Солнечный остров скрылся в туман, Замков воздушных не носит земля, Кто-то ошибся, ты или я. -------------- Программирование - самое большое удовольствие, которое вы можете получить, будучи одетым. |
|||
|
||||
| Амортизатор |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 297 Регистрация: 17.4.2005 Где: в Караганде Репутация: 1 Всего: 8 |
Черт, да я давно мечтал написать свой класс строк! Но еще больше мне хочется реализовать класс строковых списков. В vcl имеются очень грамотный и полезный класс TStringList, о мелкософтофский аналог CStringList, я извиняюсь, такое г-но, извращенная муть, что каждый раз при использовании этого д-ма руки чешутся написать свой класс, независящий ни от каких библиотек (кроме библиотеки С++ ес-но
-------------------- Поехали! |
|||
|
||||
| bel_nikita |
|
||||||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Эксперт Сообщений: 2304 Регистрация: 12.10.2003 Где: Поезд №21/22 ( ст . Прага ) Репутация: 21 Всего: 47 |
А написали-то
Вставлю и я своих пять копеек ManiaK
З.Ы.: А вообще, новичку нужно использовать std::string дабы не грузить свою голову template'ами и т.д. и т.п. Всему свое время. Когда научится использовать std::string тогда и можно будет поговаривать о изучении и написании своего класса строки. |
||||||||
|
|||||||||
| kometa_triatlon |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 384 Регистрация: 7.1.2005 Где: Киев Репутация: 2 Всего: 6 |
Это Борланд не есть гуд Borland SUXX Напишите про std::string!!! -------------------- Всё очень просто: сказки обман, Солнечный остров скрылся в туман, Замков воздушных не носит земля, Кто-то ошибся, ты или я. -------------- Программирование - самое большое удовольствие, которое вы можете получить, будучи одетым. |
|||
|
||||
| ManiaK |
|
|||
![]() Homo Sapience ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 1145 Регистрация: 3.8.2004 Где: ИУ5-93 Репутация: 5 Всего: 29 |
Тиха!
|
|||
|
||||
| kometa_triatlon |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 384 Регистрация: 7.1.2005 Где: Киев Репутация: 2 Всего: 6 |
ManiaK
Ну так и все, что ты написал и то, что пишешь, и то, что будешь писать, и то, о чем еще не знаешь - все ведь в книгах описано -------------------- Всё очень просто: сказки обман, Солнечный остров скрылся в туман, Замков воздушных не носит земля, Кто-то ошибся, ты или я. -------------- Программирование - самое большое удовольствие, которое вы можете получить, будучи одетым. |
|||
|
||||
| Fantasist |
|
||||
|
Лентяй ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1517 Регистрация: 24.3.2002 Репутация: 4 Всего: 41 |
Тогда уж лучше убрать ссылку. Если мы не собираемся менять возвращаемое значение, то передавать по ссылке имеет смысл только большие структуры, а не примитивные типы. Соглашусь, что здесь const в передаваемом параметре нафиг не нужен. Не очень догнал красоты наследования класса строки от чего-то. Виртуальный деструктор добавляет таблицу виртуальных методов, а это еще +4 байта к классу. В большинстве случаев это приемлимо, но для класса строки по-моему излишне. Если хочется приладить свое управление памятью, то лучше создать allocator'ы на подобее STL'евских.
Лучше, конечно, такого вообще не упоминать, ибо Страуструп говорит, что не гарантируется, что для хранения указателя всегда хватит int'а. Но если упоминать, то лучше: "большинстве случаев любой указатель по размеру совпадает с int". Long - это вроде процессоронезависемый тип в отличие от int. И unsigned тоже не нужно - размер от этого не меняется. Unsigned - это просто указание компилятору как инерпиртировать содержимое, в большинстве случаев. -------------------- Волны гасят ветер... |
||||
|
|||||
| Mayk |
|
|||
![]() ^аВаТаР^ сообщение>> ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 2616 Регистрация: 22.5.2005 Где: за границей разум а Репутация: 45 Всего: 134 |
[offtop]
Да, точно, сглупил малость. unsigned/signed не суть важно когда говорим о размере. А вот конвертить поинтеры "лучше" все же в unsigned. Но long это еще ой-ой-ой как процессорозависимый тип. На x86 это 32 бита, на АМД64 - 64 бита. АМДшники же кажется придерживаются LP64 модели? А вот int АФАИР сейчас равен 32 битам как на x86, так и на AMD64. Единственное, не забываем про sizeof(char) <= sizeof(short) <= sizeof(int) <= sizeof(long) [<= sizeof(long long) с недавних пор]. А вот [u]int8_t, [u]int16_t, [u]int32_t, [u]int64_t действительно процессорнезависимы. Да и Vim их к тому же по дефолту подсвечивает [/offtop] А теперь по топику - где работы со строками? АФАИР сейчас никто не пишет про сишные strXXX? Тогда, пожалуй я начну. Это сообщение отредактировал(а) Mayk - 2.6.2005, 19:10 -------------------- Здесь был кролик. Но его убили. Человеки < кроликов, йа считаю. |
|||
|
||||
| PGsoft |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 19 Регистрация: 30.5.2005 Где: Петербург Репутация: нет Всего: 1 |
И вообще, что за дела с этими строками?! То CString, то AnsiString, то char*.... Куда деваться от разнообразия?!
|
|||
|
||||
| ManiaK |
|
||||
![]() Homo Sapience ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 1145 Регистрация: 3.8.2004 Где: ИУ5-93 Репутация: 5 Всего: 29 |
И? Я об этом в паре постов назад говорил. Просто лично мне к примеру значительно удобнее и проще побродить по форуму, чем ехать куда-то покупать какие-то книги. Я даже больше скажу: в инете уже есть всё, о чём я пишу и о чём я буду писать! И что это даёт? Загляни в репу ко мне - неужели ты думаешь, что Чип с Сергей.Z навешали мне просто так репейники? Значит оно надо! Не буду описывать зачем - лень Сейчас чуть времени малова-то. Допишу статьи позже... Добавлено @ 11:53
Некоторые, вроде Gepard'а, пишут свои классы. И ни в чём не проигрывают - свой класс можно всегда настроить под себя и тратить от того на программы значительно меньше времени. |
||||
|
|||||
| bel_nikita |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Эксперт Сообщений: 2304 Регистрация: 12.10.2003 Где: Поезд №21/22 ( ст . Прага ) Репутация: 21 Всего: 47 |
ManiaK
MSVC: есть CString и std::basic_string Borland: есть AnsiString и std::basic_string Еще где-то: есть Что-то и std::basic_string У Вас: есть Что-то и std::basic_string Так может досточно знать std::basic_string? |
|||
|
||||
| ManiaK |
|
|||
![]() Homo Sapience ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 1145 Регистрация: 3.8.2004 Где: ИУ5-93 Репутация: 5 Всего: 29 |
Твоё личное мнение, не забывай. Американцы тоже говорили Ираку: "Зашем вам строить какой-то режим, когды есть Демократия?" Результаты известны. А если серьёзно, зависит сильно от личности. У меня например от всего STL вообще la blavou . Я эстет даже в программировании и стиль, в котором написана эта библиотека мне очень напоминает то, как Си-шники пишут на языке Си++. И таких, как я, не так уж и мало. |
|||
|
||||
| bel_nikita |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Эксперт Сообщений: 2304 Регистрация: 12.10.2003 Где: Поезд №21/22 ( ст . Прага ) Репутация: 21 Всего: 47 |
А то, что STL и la blavou, то мне кажется, просто напросто от незнания и нежелания |
|||
|
||||
| Void |
|
|||
![]() λcat.lolcat ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2206 Регистрация: 16.11.2004 Где: Zürich Репутация: 40 Всего: 173 |
Впервые в жизни слышу подобное утверждение -------------------- “Coming back to where you started is not the same as never leaving.” — Terry Pratchett |
|||
|
||||
![]()
|
| Правила форума "С++:Общие вопросы" | |
|
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |