Модераторы: Daevaorn

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Сложение строк, тупой вопрос 
:(
    Опции темы
ManiaK
Дата 31.5.2005, 21:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Homo Sapience
***


Профиль
Группа: Комодератор
Сообщений: 1145
Регистрация: 3.8.2004
Где: ИУ5-93

Репутация: 5
Всего: 29



Не бейте пиониста: он играет как может:)
Обойти наследование можно, но для этого нужно время. У меня его не шибко много. Если кто-то захочет переделать мою статью - бога ради, я не обижусь:)
Так уж и быть, убью константы, где это ни на что не повлияет. Уболтали:)
PM MAIL WWW   Вверх
kometa_triatlon
Дата 31.5.2005, 22:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 384
Регистрация: 7.1.2005
Где: Киев

Репутация: 2
Всего: 6



Чем дальше в лес, тем толще партизаны...
Куда вы залезли? Зачем это тем, кто начинает изучать?
Господи, перегрузка, шаблоны, классы... Да новичок испугается и сразу закроет статью, к тому же не поймет ничего. Так что есть предложение перенести пару этих постов в отдельную тему, например "Нюансы использования строк", "Строки для продвинутых" или что-то такое.
А то тема переросла в что-то несистематическое и непонятное. Как будто выбросили хороший кусок посредине.
И нет самого основного - работы со строками.
По-моему, остается еще нераскрытый вопрос: арифметические операции с указателями в применении к строкам. То есть операции типа str++, (array+4)*...
Void кстати показал хороший пример на эту тему, но раз у него сессия...

Это сообщение отредактировал(а) kometa_triatlon - 31.5.2005, 22:18


--------------------
Всё очень просто: сказки обман,
Солнечный остров скрылся в туман,
Замков воздушных не носит земля,
Кто-то ошибся, ты или я.

--------------
Программирование - самое большое удовольствие, которое вы можете получить, будучи одетым.
PM MAIL ICQ   Вверх
Амортизатор
Дата 31.5.2005, 22:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 297
Регистрация: 17.4.2005
Где: в Караганде

Репутация: 1
Всего: 8



Черт, да я давно мечтал написать свой класс строк! Но еще больше мне хочется реализовать класс строковых списков. В vcl имеются очень грамотный и полезный класс TStringList, о мелкософтофский аналог CStringList, я извиняюсь, такое г-но, извращенная муть, что каждый раз при использовании этого д-ма руки чешутся написать свой класс, независящий ни от каких библиотек (кроме библиотеки С++ ес-но smile ).


--------------------
Поехали!
PM MAIL   Вверх
bel_nikita
Дата 31.5.2005, 23:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Эксперт
Сообщений: 2304
Регистрация: 12.10.2003
Где: Поезд №21/22 ( ст . Прага )

Репутация: 21
Всего: 47



А написали-то smile
Вставлю и я своих пять копеек smile
ManiaK
Цитата
Код
typedef unsigned int DWord_t;
Не есть гуд, так как, к примеру, в Borland 3.1 unsigned int - двухбайтовая величина smile поэтому DWORD == unsigned long
Цитата
Код
UInt_t GetSize(Void_t) const;
...
UInt_t    m_nSize;
Вместо UInt_t лучше использовать size_t

З.Ы.: А вообще, новичку нужно использовать std::string дабы не грузить свою голову template'ами и т.д. и т.п. Всему свое время. Когда научится использовать std::string тогда и можно будет поговаривать о изучении и написании своего класса строки.


--------------------
user posted image — регистрация доменов от 150 руб.
PM MAIL WWW ICQ   Вверх
kometa_triatlon
Дата 1.6.2005, 00:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 384
Регистрация: 7.1.2005
Где: Киев

Репутация: 2
Всего: 6



Цитата
Не есть гуд, так как, к примеру, в Borland 3.1 unsigned int - двухбайтовая величина  поэтому DWORD == unsigned long

Это Борланд не есть гуд smile
Borland SUXX

Напишите про std::string!!!
smile


--------------------
Всё очень просто: сказки обман,
Солнечный остров скрылся в туман,
Замков воздушных не носит земля,
Кто-то ошибся, ты или я.

--------------
Программирование - самое большое удовольствие, которое вы можете получить, будучи одетым.
PM MAIL ICQ   Вверх
ManiaK
Дата 1.6.2005, 11:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Homo Sapience
***


Профиль
Группа: Комодератор
Сообщений: 1145
Регистрация: 3.8.2004
Где: ИУ5-93

Репутация: 5
Всего: 29



Тиха! smile Пральна kometa_triatlon сказал - этот класс надо в что-нибудь "для средняков". Доделаю уж его сначала (допишу статейку), а потом уж про std::string. Насчёт того, что уже "трюки" различные в книгах описаны: в книгах описано почти всё! было бы желание и время это изучать...
PM MAIL WWW   Вверх
kometa_triatlon
Дата 1.6.2005, 17:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 384
Регистрация: 7.1.2005
Где: Киев

Репутация: 2
Всего: 6



ManiaK
Ну так и все, что ты написал и то, что пишешь, и то, что будешь писать, и то, о чем еще не знаешь - все ведь в книгах описано smile Но нас хватает только на то, чтобы запустить EDialer и выбрать в букмарках Винград smile


--------------------
Всё очень просто: сказки обман,
Солнечный остров скрылся в туман,
Замков воздушных не носит земля,
Кто-то ошибся, ты или я.

--------------
Программирование - самое большое удовольствие, которое вы можете получить, будучи одетым.
PM MAIL ICQ   Вверх
Fantasist
Дата 2.6.2005, 17:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Лентяй
***


Профиль
Группа: Участник Клуба
Сообщений: 1517
Регистрация: 24.3.2002

Репутация: 4
Всего: 41



Цитата(Void @ 31.5.2005, 18:15)

const /* ! */ Char_t&    operator [] (const UInt_t nPos) const;


Тогда уж лучше убрать ссылку. Если мы не собираемся менять возвращаемое значение, то передавать по ссылке имеет смысл только большие структуры, а не примитивные типы.

Соглашусь, что здесь const в передаваемом параметре нафиг не нужен.

Не очень догнал красоты наследования класса строки от чего-то. Виртуальный деструктор добавляет таблицу виртуальных методов, а это еще +4 байта к классу. В большинстве случаев это приемлимо, но для класса строки по-моему излишне. Если хочется приладить свое управление памятью, то лучше создать allocator'ы на подобее STL'евских.

Цитата(Mayk @ 31.5.2005, 16:41)
Для блеска: лучше что-нибудь типа "по размеру совпадает с unsigned long"


Лучше, конечно, такого вообще не упоминать, ибо Страуструп говорит, что не гарантируется, что для хранения указателя всегда хватит int'а. Но если упоминать, то лучше: "большинстве случаев любой указатель по размеру совпадает с int". Long - это вроде процессоронезависемый тип в отличие от int. И unsigned тоже не нужно - размер от этого не меняется. Unsigned - это просто указание компилятору как инерпиртировать содержимое, в большинстве случаев. smile






--------------------
Волны гасят ветер...
PM MAIL   Вверх
Mayk
Дата 2.6.2005, 18:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


^аВаТаР^ сообщение>>
****


Профиль
Группа: Участник
Сообщений: 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 их к тому же по дефолту подсвечивает smile. Вывод - они спасут мир smile Ну если не мир, то во всяком случае теперь разбираясь с новой скаченной библеотекой не придется заучивать как названы процессоронезависимые типы.
[/offtop]

А теперь по топику - где работы со строками? АФАИР сейчас никто не пишет про сишные strXXX? Тогда, пожалуй я начну.

Это сообщение отредактировал(а) Mayk - 2.6.2005, 19:10


--------------------
 Здесь был кролик. Но его убили.
Человеки < кроликов, йа считаю.
PM MAIL WWW ICQ   Вверх
PGsoft
Дата 4.6.2005, 23:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 19
Регистрация: 30.5.2005
Где: Петербург

Репутация: нет
Всего: 1



И вообще, что за дела с этими строками?! То CString, то AnsiString, то char*.... Куда деваться от разнообразия?! smile

smile "Большой выбор хуже отсутствия выбора" :-)
PM WWW ICQ   Вверх
ManiaK
Дата 7.6.2005, 11:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Homo Sapience
***


Профиль
Группа: Комодератор
Сообщений: 1145
Регистрация: 3.8.2004
Где: ИУ5-93

Репутация: 5
Всего: 29



Цитата(kometa_triatlon @ 1.6.2005, 17:58)
Ну так и все, что ты написал и то, что пишешь, и то, что будешь писать, и то, о чем еще не знаешь - все ведь в книгах описано


И? Я об этом в паре постов назад говорил. Просто лично мне к примеру значительно удобнее и проще побродить по форуму, чем ехать куда-то покупать какие-то книги. Я даже больше скажу: в инете уже есть всё, о чём я пишу и о чём я буду писать! И что это даёт? Загляни в репу ко мне - неужели ты думаешь, что Чип с Сергей.Z навешали мне просто так репейники? Значит оно надо! Не буду описывать зачем - лень smile Да это и роли не играет. Думаю флуд на тему "а оно всё надо?" можно прекратить. Если просят - значит надо. smile

Сейчас чуть времени малова-то. Допишу статьи позже...
Добавлено @ 11:53
Цитата(PGsoft @ 4.6.2005, 23:25)
"Большой выбор хуже отсутствия выбора" :-)

Некоторые, вроде Gepard'а, пишут свои классы. И ни в чём не проигрывают - свой класс можно всегда настроить под себя и тратить от того на программы значительно меньше времени.
PM MAIL WWW   Вверх
bel_nikita
Дата 7.6.2005, 12:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Эксперт
Сообщений: 2304
Регистрация: 12.10.2003
Где: Поезд №21/22 ( ст . Прага )

Репутация: 21
Всего: 47



ManiaK
Цитата
Некоторые, вроде Gepard'а, пишут свои классы. И ни в чём не проигрывают - свой класс можно всегда настроить под себя и тратить от того на программы значительно меньше времени.
smile

MSVC: есть CString и std::basic_string
Borland: есть AnsiString и std::basic_string
Еще где-то: есть Что-то и std::basic_string
У Вас: есть Что-то и std::basic_string

Так может досточно знать std::basic_string? smile И не нужно ничего настраивать и тратить время


--------------------
user posted image — регистрация доменов от 150 руб.
PM MAIL WWW ICQ   Вверх
ManiaK
Дата 7.6.2005, 14:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Homo Sapience
***


Профиль
Группа: Комодератор
Сообщений: 1145
Регистрация: 3.8.2004
Где: ИУ5-93

Репутация: 5
Всего: 29



Цитата(bel_nikita @ 7.6.2005, 12:16)
Так может досточно знать std::basic_string?  И не нужно ничего настраивать и тратить время


Твоё личное мнение, не забывай. Американцы тоже говорили Ираку: "Зашем вам строить какой-то режим, когды есть Демократия?" Результаты известны.

А если серьёзно, зависит сильно от личности. У меня например от всего STL вообще la blavou . Я эстет даже в программировании и стиль, в котором написана эта библиотека мне очень напоминает то, как Си-шники пишут на языке Си++. И таких, как я, не так уж и мало.
PM MAIL WWW   Вверх
bel_nikita
Дата 7.6.2005, 17:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Эксперт
Сообщений: 2304
Регистрация: 12.10.2003
Где: Поезд №21/22 ( ст . Прага )

Репутация: 21
Всего: 47



Цитата
А если серьёзно, зависит сильно от личности. У меня например от всего STL вообще la blavou . Я эстет даже в программировании и стиль, в котором написана эта библиотека мне очень напоминает то, как Си-шники пишут на языке Си++. И таких, как я, не так уж и мало.
Не знаю, какую реализацию ты имеешь ввиду, но STLport написана на ура.
А то, что STL и la blavou, то мне кажется, просто напросто от незнания и нежелания


--------------------
user posted image — регистрация доменов от 150 руб.
PM MAIL WWW ICQ   Вверх
Void
Дата 7.6.2005, 19:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


λcat.lolcat
****


Профиль
Группа: Участник Клуба
Сообщений: 2206
Регистрация: 16.11.2004
Где: Zürich

Репутация: 40
Всего: 173



Цитата(ManiaK @ 7.6.2005, 16:48)
У меня например от всего STL вообще la blavou . Я эстет даже в программировании и стиль, в котором написана эта библиотека мне очень напоминает то, как Си-шники пишут на языке Си++. И таких, как я, не так уж и мало.

Впервые в жизни слышу подобное утверждение smile Во многом STL упрекают, в частности, в кривом дизайне, но то, что она написана в стиле Си... (Степанов не похож на Си-шника, который пишет на языке Си++, имхо).


--------------------
“Coming back to where you started is not the same as never leaving.” — Terry Pratchett
PM MAIL WWW GTalk   Вверх
Страницы: (4) Все 1 2 [3] 4 
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.1007 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.