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

Поиск:

Закрытая темаСоздание новой темы Создание опроса
> Классы в С++, Структура динамического класса 
:(
    Опции темы
Sliva
Дата 4.5.2006, 22:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Класс, который реализует множество слов - как его можно описать? Если я описываю так: 

class Words  
{
  private : char*  masWord[10];  
    Words * next;
                       
  public : Words(char* aw);
            ~Words();
               AddWord();// какие должны быть параметры у функции добавления элемента?
};  // class Words

это верно??? 
PM   Вверх
cozzzy
Дата 4.5.2006, 23:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



я бы сделал:

Код

class Words
{
private:
      std::vector<std::string> words_;
public:
      Words(const char* aw); //? Возможно Words(const std::vector<std::string>& aw);
      ~Words();
      AddWord(const char* word)
      {

           if(word)
               words_.push_back(std::string(word));
       }
   

Это сообщение отредактировал(а) cozzzy - 4.5.2006, 23:31
PM MAIL   Вверх
Heremum
Дата 5.5.2006, 05:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



А я бы не маялся с вектором.
Код

class aWord
{
    public:
        aWord(char* word);
        aWord();
        ~aWord();
        
        aWord* addNewWord(char* cap);
        
        char* thisWord;
        aWord* next;
        aWord* prev;
};
 
PM MAIL ICQ   Вверх
MAKCim
Дата 5.5.2006, 07:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Воін дZэна
****


Профиль
Группа: Экс. модератор
Сообщений: 5644
Регистрация: 10.12.2005
Где: Менск, РБ

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



Цитата

Код

А я бы не маялся с вектором.

class aWord
{
    public:
        aWord(char* word);
        aWord();
        ~aWord();
        
        aWord* addNewWord(char* cap);
        
        char* thisWord;
        aWord* next;
        aWord* prev;
};


тут вообще не соблюдается один из основных принципов ООП - инкапсуляция
+ работа с указателями требует больше внимания и осторожности (двойное удаление и прочее)  

Это сообщение отредактировал(а) MAKCim - 5.5.2006, 07:42


--------------------
Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі ©

PM MAIL   Вверх
cozzzy
Дата 5.5.2006, 11:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Цитата(Heremum @  5.5.2006,  04:43 Найти цитируемый пост)
А я бы не маялся с вектором.

Объясни чем твой способ лучше и удобнее?
Сейчас вообще не рекомендуется использовать указатели в чистом виде, кроме случаев, когда это действительно необходимо. В данном случае необходимости в этом нету. 

Цитата(MAKCim @  5.5.2006,  06:40 Найти цитируемый пост)
тут вообще не соблюдается один из основных принципов ООП - инкапсуляция

Возможно он просто пропустил модификатор private

 
PM MAIL   Вверх
Heremum
Дата 5.5.2006, 13:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



MAKCim
Цитата(MAKCim @  5.5.2006,  07:40 Найти цитируемый пост)
тут вообще не соблюдается один из основных принципов ООП - инкапсуляция

Во-первых: я набросал "наспех".
Во-вторых: как хочу так и пишу и никого не спрашиваю. Если вы как загепнотизированный следуете всем правилам ООП, то это ваши личные проблемы и ничьи больше. Для примера мой вариант кактит.
В третьих: теперь объясните мне, программисту, который сам пишет полностью проект: зачем мне инкапсуляция, когда я и так знаю: куда соваться, а куда нет? smile 
В четвёртых:
Цитата

+ работа с указателями требует больше внимания и осторожности (двойное удаление и прочее)  

Если у вас силёнок не хватает справиться с такой мелочью, как двойное удалении, то не надо говорить, что человек который это может - балбес неграмотный. Вы так не сказали, но и так из контекста ясно, что это имелось ввиду.
Дожили, за знания уже репутацию понижают smile 
Цитата

Объясни чем твой способ лучше и удобнее?

Я не говорил, что он удобнее. Я говорил, что я бы не маялся с векторами, потому что являюсь тем, кого кличут "велосипедистами": я пишу всегда всё своё. 
PM MAIL ICQ   Вверх
Fazil6
Дата 5.5.2006, 13:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1653
Регистрация: 3.5.2006
Где: Минск

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



Цитата

В третьих: теперь объясните мне, программисту, который сам пишет полностью проект: зачем мне инкапсуляция, когда я и так знаю: куда соваться, а куда нет?

ой и не говори... Кругом одни дэбилы. 
PM MAIL   Вверх
cozzzy
Дата 5.5.2006, 14:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Цитата(Fazil6 @  5.5.2006,  12:56 Найти цитируемый пост)
ой и не говори... Кругом одни дэбилы. 

 smile 

Блин я б тебе еще рейтинг понизил, если б мог. 

Цитата(Heremum @  5.5.2006,  12:39 Найти цитируемый пост)
Для примера мой вариант кактит.

Для отстойного примера - катит. На таких примерах потом вырастают программисты с кривыми руками, с которыми невозможно работать

Цитата(Heremum @  5.5.2006,  12:39 Найти цитируемый пост)
В третьих: теперь объясните мне, программисту, который сам пишет полностью проект: зачем мне инкапсуляция, когда я и так знаю: куда соваться, а куда нет?

Есть такое понятие - дисциплина. Я кончено допускаю, что ни в какую команду тебя не берут, но если когда-нибудь произойдет такое чудо, 100% ты будешь писать также и будут тебе всей командой руки отрывать 

Цитата(Heremum @  5.5.2006,  12:39 Найти цитируемый пост)
Если у вас силёнок не хватает справиться с такой мелочью, как двойное удалении, то не надо говорить, что человек который это может - балбес неграмотный. Вы так не сказали, но и так из контекста ясно, что это имелось ввиду.Дожили, за знания уже репутацию понижают  

В программировании ценится надежность. Каждому свойственно ошибаться и забывать о мелочах. К тому же код с умными укзателями более компактный

Цитата(Heremum @  5.5.2006,  12:39 Найти цитируемый пост)
 не говорил, что он удобнее. Я говорил, что я бы не маялся с векторами, потому что являюсь тем, кого кличут "велосипедистами": я пишу всегда всё своё. 

Ну-ну  smile  
PM MAIL   Вверх
Fazil6
Дата 5.5.2006, 14:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1653
Регистрация: 3.5.2006
Где: Минск

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



Цитата

Блин я б тебе еще рейтинг понизил, если б мог

за что? Я с твоим постом полностью согласен, так что тогда уж всем нам включая и тебя. И еще: рейтинг на сырцах, а здесь Репутация  
PM MAIL   Вверх
cozzzy
Дата 5.5.2006, 15:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Fazil6, не тебе, а Heremum'у  smile  
PM MAIL   Вверх
chipset
Дата 5.5.2006, 15:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 4071
Регистрация: 11.1.2003
Где: Seattle, US

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



Цитата(Heremum @  5.5.2006,  03:39 Найти цитируемый пост)
В третьих: теперь объясните мне, программисту, который сам пишет полностью проект: зачем мне инкапсуляция, когда я и так знаю: куда соваться, а куда нет? smile 


Цитата(Heremum @  4.5.2006,  19:43 Найти цитируемый пост)
А я бы не маялся с вектором.

Такой код хорош только для программ меньше 1000 строк, для всего что больше (я не говорю про ситуацию с большем чем >1 программистом в команде) этого код ужасен.

а) Указатели не защищены.
б) Приватные данные вывернуты наружу (это С++ а не Си).
в) Не используется STL smile

И ещё, народ, не забываем злоупотреблять виртуальными деструкторами smile 


--------------------
Цитата(Jimi Hendrix)
Well, I stand up next to a mountain
And I chop it down with the edge of my hand
PM MAIL WWW   Вверх
gepard
Дата 5.5.2006, 17:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


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

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



И в результате: ничего кроем нытия про то, что так труднее работать не видно.

Цитата(chipset @  5.5.2006,  15:42 Найти цитируемый пост)
а) Указатели не защищены.
б) Приватные данные вывернуты наружу (это С++ а не Си).

Один и тот же пункт, который перечёркивается тем, что человек пишет небольшую программу один.

Цитата(chipset @  5.5.2006,  15:42 Найти цитируемый пост)
в) Не используется STL

Вообще не аргумент. 


--------------------
Когда начинаются цифровые войны, а траффик разносит моё сознание по бесконечным просторам инета, подобно ветру, разносящему листву по полям, тогда и только тогда я чувствую себя свободным!
© Я, Берсерк, что значит - Неистовый. 
PM MAIL WWW ICQ   Вверх
sergejzr
Дата 5.5.2006, 19:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Un salsero
Group Icon


Профиль
Группа: Админ
Сообщений: 13285
Регистрация: 10.2.2004
Где: Германия г .Ганновер

Репутация: 11
Всего: 360



Эта тема закрывается. 


--------------------
PM WWW IM ICQ Skype GTalk Jabber AOL YIM MSN   Вверх
  
Закрытая темаСоздание новой темы Создание опроса
Правила форума "Центр помощи"

ВНИМАНИЕ! Прежде чем создавать темы, или писать сообщения в данный раздел, ознакомьтесь, пожалуйста, с Правилами форума и конкретно этого раздела.
Несоблюдение правил может повлечь за собой самые строгие меры от закрытия/удаления темы до бана пользователя!


  • Название темы должно отражать её суть! (Не следует добавлять туда слова "помогите", "срочно" и т.п.)
  • При создании темы, первым делом в квадратных скобках укажите область, из которой исходит вопрос (язык, дисциплина, диплом). Пример: [C++].
  • В названии темы не нужно указывать происхождение задачи (например "школьная задача", "задача из учебника" и т.п.), не нужно указывать ее сложность ("простая задача", "легкий вопрос" и т.п.). Все это можно писать в тексте самой задачи.
  • Если Вы ошиблись при вводе названия темы, отправьте письмо любому из модераторов раздела (через личные сообщения или report).
  • Для подсветки кода пользуйтесь тегами [code][/code] (выделяйте код и нажимаете на кнопку "Код"). Не забывайте выбирать при этом соответствующий язык.
  • Помните: один топик - один вопрос!
  • В данном разделе запрещено поднимать темы, т.е. при отсутствии ответов на Ваш вопрос добавлять новые ответы к теме, тем самым поднимая тему на верх списка.
  • Если вы хотите, чтобы вашу проблему решили при помощи определенного алгоритма, то не забудьте описать его!
  • Если вопрос решён, то воспользуйтесь ссылкой "Пометить как решённый", которая находится под кнопками создания темы или специальным флажком при ответе.

Более подробно с правилами данного раздела Вы можете ознакомится в этой теме.

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

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


 




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


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

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