0 / 0 / 0
Регистрация: 24.09.2011
Сообщений: 13
1

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

25.09.2011, 00:23. Показов 2226. Ответов 22
Метки нет (Все метки)

Пытаюсь обучиться работать с формами в Visual Studio, перед этим имевши небольшой опыт работы под Builder'ом.
Вызывает недоумение, почему обработчики всяческих действий (Клик по кнопке к примеру) пишутся в заголовочном файле Form1.h , а не в projectname.cpp, иль каком-другом *.cpp. В этом есть смысл какой-то? Или стоит в Form1.h оставлять лишь объявление, а тело обработчика совать в *.cpp?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
25.09.2011, 00:23
Ответы с готовыми решениями:

НЕ могу понять принцип программирования
Здравствуйте, господа программисты, требуется ваша помощь. не могу понять секрет программирования....

Не могу понять принцип работы программы
Откуда берутся : в количестве введенных символов? #include <iostream> #include <iomanip> using...

Нужно понять принцип выполнения задания
Пользователь вводит с клавиатуры объем в байтах. Перевести его в килобайты, мегабайты, гигабайты и...

Построить N-арное дерево: не могу понять принцип размещения элементов
Здравствуйте, нужно построить n-арное дерево. Алгоритм постоени бинарного мне полностью понятен, но...

22
программист С++
841 / 600 / 147
Регистрация: 19.12.2010
Сообщений: 2,014
25.09.2011, 00:35 2
в топку инкапсуляцию.
это только на первом курсе ее толкают, что мол одна из 3х парадигм. А на практике она часто игнорится
1
Каратель
Эксперт С++
6607 / 4026 / 401
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
25.09.2011, 01:07 3
Цитата Сообщение от sandye51 Посмотреть сообщение
в топку инкапсуляцию.
это только на первом курсе ее толкают, что мол одна из 3х парадигм. А на практике она часто игнорится
у студентов/говнокодеров, без обид, но это так
0
программист С++
841 / 600 / 147
Регистрация: 19.12.2010
Сообщений: 2,014
25.09.2011, 01:11 4
посмотри boost, там почти все либы only header. Да и у нас преподы толковые в универе говорят что инкапсуляция (в смысле разделения реализации и интерфейса) не совсем нужная штука
в си шарпе вон нет никакого разделеления на объявление и реализацию и никто не жалуется
1
Каратель
Эксперт С++
6607 / 4026 / 401
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
25.09.2011, 01:19 5
Цитата Сообщение от sandye51 Посмотреть сообщение
посмотри boost, там почти все либы only header.
в бусте много шаблонов да и сама либа большая потому накладно делать реализацию в срр

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

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

Цитата Сообщение от sandye51 Посмотреть сообщение
Да и у нас преподы толковые в универе говорят что инкапсуляция не совсем нужная штука
у меня в универе первокурсников учат на bc3.1, это повод для перехода на него?
0
1562 / 1040 / 94
Регистрация: 17.04.2009
Сообщений: 2,995
25.09.2011, 01:21 6
А в чем связь инкапсуляции и где описан класс в хедере или сипипи ? - главное, что пользователь класса будет видеть и использовать.
0
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

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

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

Добавлено через 1 минуту
Цитата Сообщение от sandye51 Посмотреть сообщение
opencv тоже не маленькая, но там почему то не поленились
Вот и хороший пример сопровождения чужого кода среди разработчиков.
0
0 / 0 / 0
Регистрация: 24.09.2011
Сообщений: 13
25.09.2011, 01:37  [ТС] 10
ээээ... вы в страшны дебри забрались
0
1562 / 1040 / 94
Регистрация: 17.04.2009
Сообщений: 2,995
25.09.2011, 01:38 11
Цитата Сообщение от McAron Посмотреть сообщение
ээээ... вы в страшны дебри забрались
Добрый совет, автогенерацию лучше не трогать
0
программист С++
841 / 600 / 147
Регистрация: 19.12.2010
Сообщений: 2,014
25.09.2011, 01:38 12
Цитата Сообщение от KuKu Посмотреть сообщение
Сопровождение и чтение чужого кода
во всех современных редакторах можно свернуть реализацию.
вот та же интерфейсная часть
0
1562 / 1040 / 94
Регистрация: 17.04.2009
Сообщений: 2,995
25.09.2011, 01:46 13
Цитата Сообщение от sandye51 Посмотреть сообщение
во всех современных редакторах можно свернуть реализацию.
вот та же интерфейсная часть
Да, а еще можно вместо одной карты мира держать 200 карт каждой страны и по ним ориентироваться где, расположены страны между собой, только это не очень практично. Тут так же. Если вам нравится писать все вместе, то пишите, но жалко людей, которые будут читать код.
0
Каратель
Эксперт С++
6607 / 4026 / 401
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
25.09.2011, 01:50 14
Цитата Сообщение от sandye51 Посмотреть сообщение
а где твои плюсы за разделение?
плюс разделения:
1) возможность ознакомится с интерфейсом не вдаваясь в реализацию(и без лишних телодвижений типа сворачивания реализации в редакторе)
2) возможность скрыть реализацию

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

Не по теме:

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

0
Эксперт С++
1067 / 846 / 60
Регистрация: 30.04.2011
Сообщений: 1,659
25.09.2011, 10:07 18
Цитата Сообщение от sandye51 Посмотреть сообщение
в топку инкапсуляцию.
это только на первом курсе ее толкают, что мол одна из 3х парадигм. А на практике она часто игнорится
Я сочувствую той конторе, где вы будете работать...
0
программист С++
841 / 600 / 147
Регистрация: 19.12.2010
Сообщений: 2,014
25.09.2011, 13:01 19
ValeryLaptev, не надо только тут выёживаться. Чтоб разделить реализацию и интерфейс - мозгов много не надо. Как в организации скажут - так и буду делать.
это отнюдь не главный признак, отличающий хренового и нормального программиста.

Цитата Сообщение от fasked Посмотреть сообщение
А знаете почему?
знаю.
0
Эксперт С++
1067 / 846 / 60
Регистрация: 30.04.2011
Сообщений: 1,659
25.09.2011, 13:17 20
Цитата Сообщение от sandye51 Посмотреть сообщение
ValeryLaptev, не надо только тут выёживаться. Чтоб разделить реализацию и интерфейс - мозгов много не надо. Как в организации скажут - так и буду делать.
это отнюдь не главный признак, отличающий хренового и нормального программиста.
знаю.
Главный признак - ваши слова о бесполезности инкапсуляции...
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
25.09.2011, 13:17
Помогаю со студенческими работами здесь

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

Помогите реализовать принцип fifo
Помогите реализовать принцип "первый зашел первый вышел" и 3 состояния процесса рождение:...

Помогите написать проги в BORLAND C31
Очень нужно написать программы до понедельника плиззззззззззз...

Помогите с установкой проги на другом компе в сети!
Проблема такая: хочу на все компы в сети установить Radmin Server . Желательно програмно , а то...


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru