Форум программистов, компьютерный форум CyberForum.ru

Помогите понять принцип составления проги - C++

Восстановить пароль Регистрация
 
 
Рейтинг: Рейтинг темы: голосов - 11, средняя оценка - 4.73
McAron
0 / 0 / 0
Регистрация: 24.09.2011
Сообщений: 13
25.09.2011, 00:23     Помогите понять принцип составления проги #1
Пытаюсь обучиться работать с формами в Visual Studio, перед этим имевши небольшой опыт работы под Builder'ом.
Вызывает недоумение, почему обработчики всяческих действий (Клик по кнопке к примеру) пишутся в заголовочном файле Form1.h , а не в projectname.cpp, иль каком-другом *.cpp. В этом есть смысл какой-то? Или стоит в Form1.h оставлять лишь объявление, а тело обработчика совать в *.cpp?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
sandye51
программист С++
 Аватар для sandye51
677 / 579 / 39
Регистрация: 19.12.2010
Сообщений: 2,016
25.09.2011, 00:35     Помогите понять принцип составления проги #2
в топку инкапсуляцию.
это только на первом курсе ее толкают, что мол одна из 3х парадигм. А на практике она часто игнорится
Jupiter
Каратель
Эксперт C++
6543 / 3963 / 226
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
Завершенные тесты: 2
25.09.2011, 01:07     Помогите понять принцип составления проги #3
Цитата Сообщение от sandye51 Посмотреть сообщение
в топку инкапсуляцию.
это только на первом курсе ее толкают, что мол одна из 3х парадигм. А на практике она часто игнорится
у студентов/говнокодеров, без обид, но это так
sandye51
программист С++
 Аватар для sandye51
677 / 579 / 39
Регистрация: 19.12.2010
Сообщений: 2,016
25.09.2011, 01:11     Помогите понять принцип составления проги #4
посмотри boost, там почти все либы only header. Да и у нас преподы толковые в универе говорят что инкапсуляция (в смысле разделения реализации и интерфейса) не совсем нужная штука
в си шарпе вон нет никакого разделеления на объявление и реализацию и никто не жалуется
Jupiter
Каратель
Эксперт C++
6543 / 3963 / 226
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
Завершенные тесты: 2
25.09.2011, 01:19     Помогите понять принцип составления проги #5
Цитата Сообщение от sandye51 Посмотреть сообщение
посмотри boost, там почти все либы only header.
в бусте много шаблонов да и сама либа большая потому накладно делать реализацию в срр

Цитата Сообщение от sandye51 Посмотреть сообщение
в си шарпе
там все ни как у людей, как в мелкософте привыкли писать так другим и навязывают

Цитата Сообщение от sandye51 Посмотреть сообщение
вон нет никакого разделеления на объявление и реализацию и никто не жалуется
да? а как же разделение класса формы на 2 файла?

Цитата Сообщение от sandye51 Посмотреть сообщение
Да и у нас преподы толковые в универе говорят что инкапсуляция не совсем нужная штука
у меня в универе первокурсников учат на bc3.1, это повод для перехода на него?
KuKu
 Аватар для KuKu
1538 / 1016 / 69
Регистрация: 17.04.2009
Сообщений: 2,946
25.09.2011, 01:21     Помогите понять принцип составления проги #6
А в чем связь инкапсуляции и где описан класс в хедере или сипипи ? - главное, что пользователь класса будет видеть и использовать.
McAron
0 / 0 / 0
Регистрация: 24.09.2011
Сообщений: 13
25.09.2011, 01:25  [ТС]     Помогите понять принцип составления проги #7
Вам наверно видней, но мне кажется, что удобней все же описывать обработчики в отдельном файле, а то если понасоздавать 10+ компонентов со всяческими обработчиками, то этот Form1.h читать будет не особо приятно.
Сейчас этим как раз заморачиваюсь.
Содал actions.cpp, в Form1.h дописал
C++
1
 #include "actions.cpp"
и оставил обьявление:
C++
1
 private: System::Void Butt_Click_1(System::Object^  sender, System::EventArgs^  e);
а тело функции перенес в actions.cpp:
C++
1
2
3
4
System::Void Butt_Click_1(System::Object^  sender, System::EventArgs^  e) 
             {
                 ::System::Windows::Forms::MessageBox::Show("Блаблабла") ;
             }
Но при компиляции вылезает
\actions.cpp(4): error C2065: 'Butt' : undeclared identifier
\actions.cpp(4): error C2227: left of '->Text' must point to class/struct/union/generic type

Подскажите пожалуйста, что не так?
sandye51
программист С++
 Аватар для sandye51
677 / 579 / 39
Регистрация: 19.12.2010
Сообщений: 2,016
25.09.2011, 01:31     Помогите понять принцип составления проги #8
Цитата Сообщение от Jupiter Посмотреть сообщение
а как же разделение класса формы на 2 файла?
отделения реализации и интерфейса нет. Эти 2 файла служат для отделения кода, сгенерированного автоматически для визуальной части, от написанного руками
Цитата Сообщение от Jupiter Посмотреть сообщение
у меня в универе первокурсников учат на bc3.1, это повод для перехода на него?
выеживается не стоит. Я написал "толковые преподы", слаба богу такие тоже бывают.

а где твои плюсы за разделение?
Цитата Сообщение от Jupiter Посмотреть сообщение
потому накладно делать реализацию в срр
накладно это не аргумент. opencv тоже не маленькая, но там почему то не поленились
KuKu
 Аватар для KuKu
1538 / 1016 / 69
Регистрация: 17.04.2009
Сообщений: 2,946
25.09.2011, 01:35     Помогите понять принцип составления проги #9
Цитата Сообщение от sandye51 Посмотреть сообщение
а где твои плюсы за разделение?
Сопровождение и чтение чужого кода(да и своего ).

Добавлено через 1 минуту
Цитата Сообщение от sandye51 Посмотреть сообщение
opencv тоже не маленькая, но там почему то не поленились
Вот и хороший пример сопровождения чужого кода среди разработчиков.
McAron
0 / 0 / 0
Регистрация: 24.09.2011
Сообщений: 13
25.09.2011, 01:37  [ТС]     Помогите понять принцип составления проги #10
ээээ... вы в страшны дебри забрались
KuKu
 Аватар для KuKu
1538 / 1016 / 69
Регистрация: 17.04.2009
Сообщений: 2,946
25.09.2011, 01:38     Помогите понять принцип составления проги #11
Цитата Сообщение от McAron Посмотреть сообщение
ээээ... вы в страшны дебри забрались
Добрый совет, автогенерацию лучше не трогать
sandye51
программист С++
 Аватар для sandye51
677 / 579 / 39
Регистрация: 19.12.2010
Сообщений: 2,016
25.09.2011, 01:38     Помогите понять принцип составления проги #12
Цитата Сообщение от KuKu Посмотреть сообщение
Сопровождение и чтение чужого кода
во всех современных редакторах можно свернуть реализацию.
вот та же интерфейсная часть
KuKu
 Аватар для KuKu
1538 / 1016 / 69
Регистрация: 17.04.2009
Сообщений: 2,946
25.09.2011, 01:46     Помогите понять принцип составления проги #13
Цитата Сообщение от sandye51 Посмотреть сообщение
во всех современных редакторах можно свернуть реализацию.
вот та же интерфейсная часть
Да, а еще можно вместо одной карты мира держать 200 карт каждой страны и по ним ориентироваться где, расположены страны между собой, только это не очень практично. Тут так же. Если вам нравится писать все вместе, то пишите, но жалко людей, которые будут читать код.
Jupiter
Каратель
Эксперт C++
6543 / 3963 / 226
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
Завершенные тесты: 2
25.09.2011, 01:50     Помогите понять принцип составления проги #14
Цитата Сообщение от sandye51 Посмотреть сообщение
а где твои плюсы за разделение?
плюс разделения:
1) возможность ознакомится с интерфейсом не вдаваясь в реализацию(и без лишних телодвижений типа сворачивания реализации в редакторе)
2) возможность скрыть реализацию

Цитата Сообщение от sandye51 Посмотреть сообщение
отделения реализации и интерфейса нет. Эти 2 файла служат для отделения кода, сгенерированного автоматически для визуальной части, от написанного руками
с этим соглашусь, но такое разделение полное г... потому что нельзя делать серьёзные изменения в автоматически сгенерированом файле и при этом работать в визуальном редакторе
fasked
Эксперт C++
 Аватар для fasked
4925 / 2505 / 180
Регистрация: 07.10.2009
Сообщений: 4,306
Записей в блоге: 1
25.09.2011, 01:58     Помогите понять принцип составления проги #15
Цитата Сообщение от sandye51 Посмотреть сообщение
посмотри boost, там почти все либы only header.
А знаете почему? Попробуйте описание шаблона разнести на *.hpp и *.cpp, вот весело то будет.
Кстати, инкапсуляция здесь не при чем.
McAron
0 / 0 / 0
Регистрация: 24.09.2011
Сообщений: 13
25.09.2011, 02:12  [ТС]     Помогите понять принцип составления проги #16
Со своей проблемкой разобрался.
diagon
25.09.2011, 08:05
  #17

Не по теме:

Эм... Кто-нибудь объясните мне, как связана инкапсуляция с многофайловой компиляцией? =\

ValeryLaptev
Эксперт C++
1005 / 784 / 46
Регистрация: 30.04.2011
Сообщений: 1,595
25.09.2011, 10:07     Помогите понять принцип составления проги #18
Цитата Сообщение от sandye51 Посмотреть сообщение
в топку инкапсуляцию.
это только на первом курсе ее толкают, что мол одна из 3х парадигм. А на практике она часто игнорится
Я сочувствую той конторе, где вы будете работать...
sandye51
программист С++
 Аватар для sandye51
677 / 579 / 39
Регистрация: 19.12.2010
Сообщений: 2,016
25.09.2011, 13:01     Помогите понять принцип составления проги #19
ValeryLaptev, не надо только тут выёживаться. Чтоб разделить реализацию и интерфейс - мозгов много не надо. Как в организации скажут - так и буду делать.
это отнюдь не главный признак, отличающий хренового и нормального программиста.

Цитата Сообщение от fasked Посмотреть сообщение
А знаете почему?
знаю.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
25.09.2011, 13:17     Помогите понять принцип составления проги
Еще ссылки по теме:

помогите сделать 2 проги (массивы) C++
C++ Помогите с установкой проги на другом компе в сети!
Помогите реализовать принцип fifo C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
ValeryLaptev
Эксперт C++
1005 / 784 / 46
Регистрация: 30.04.2011
Сообщений: 1,595
25.09.2011, 13:17     Помогите понять принцип составления проги #20
Цитата Сообщение от sandye51 Посмотреть сообщение
ValeryLaptev, не надо только тут выёживаться. Чтоб разделить реализацию и интерфейс - мозгов много не надо. Как в организации скажут - так и буду делать.
это отнюдь не главный признак, отличающий хренового и нормального программиста.
знаю.
Главный признак - ваши слова о бесполезности инкапсуляции...
Yandex
Объявления
25.09.2011, 13:17     Помогите понять принцип составления проги
Ответ Создать тему
Опции темы

Текущее время: 20:46. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru