Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Общие вопросы > Для начинающих... основы ООП по С-++'ки


Автор: En_t_end 30.1.2005, 20:05
Статья пока слишком сыра... поэтому кто видел - забудьте !

Автор: chipset 31.1.2005, 05:02
Ты это, давай, выкладывай, доработаем и засунем в фак (сорри за мат) smile

Автор: En_t_end 31.1.2005, 09:04
Здравствуй дорогой человек...// блин получилось прям, как на деревню дедушке smile

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

Некоторые определения и термины базиса статьи :
  • ООП - Обьектно-ореинтированное программирование.
  • Абстракция - в букв., упрощение( кода, понятий... жизни smile )
  • MFC - Microsoft Fou%%% Class // слово class - тут как раз основное
  • Если я где-то ставлю "%%%" - это означает, что нет смысла это описывать, так это - билиберда или всеми понятная вещь.
  • С++ - язык программирования smile
ЗЫ Если ты не знаешь последний пункт, то увы "попрошу"...

Посмотрим на структуру обычной программы на С++ :
Код

#include "stdafx.h"
#include "iostream.h"

void main(void)
{
    char stroka[] = "Hello beginer !"; // :)
    cout << stroka << endl;
}

Это была программа обычного консольного приложения для win, выводящая %%%.
Сейчас поясню, зачем я её привел. Ещё на заре моего познания с++, я думал, что все программы выполняются, вот так же - последовательно.
Поэтому, когда я начал вникать в программирование сложных программных проектов, я везде применял этот принцип - увы это привело к плачевным послествиям - я потерял 8 месяцев совершенно не продуктивного изучения MFC. Причем нигде в источниках, не было записано простое изречение : "MFC - библиотека основанная на ООП". Если бы я увидел эту надпись, то я бы был умнее.
Ну начнём... WinApi - конечно подходит для написания программ, но на самом деле, при программировании в одиночку довольно серьезных проектов можно встреиться с необычайно серьезным припятсвием - запутанность кода! С моментом выхода в свет MFC - winapi стал использоваться, как источник быстрых и понятных функций, чаще всего системных анализаторов, так как в MFC- они не получили должного внимания.
MFC - Это библиотека основанная на принципах ООП. Структура библиотеки такова, что при её использовании программа меняет спецификацию отдельных элементов. Теперь программа выполняется не по шагам, как это было при программировании для консоли и под winapi.
ЗЫ если ты ещё не знаешь, в операционной среде windows, программы общаются с системой посредством сообщений.
MFC позволяет создавать скелеты программ, с уже функциональной системой отлова и отроботки сообщений. Причем в самой программе происходит парсинг на системные сообщения и на сообщения от элементов управления (батонов, листов, эдитов...). Короче проще : теперь вся программа состоит из двух частей : прием сообщений, обработка сообщений и выполнение соответсвенных действий.
Основа MFC - классы, программисты ей делающие, уже создали большинство классов. Поэтому для создания простых программ мы можем использовать классы производные от этих классов-шаблонов. Это обеспечивает минимум кода для банальных вещей. Правда часть функций-членов этих классов приходиться перегружать, а некоторые и вовсе переинициализировать. Но это оправдывается простотой и легкостью этих процессов.
Классы - обязательно изучите эти элементы языка С++ - это очень важно, так как это основа ООП, без которой вы не сможете программировать серьзные проекты !!!
MFC делит свои классы по назначению, допустим CDialog, CButton, СEdit, CString.... где "C" - характерная приставка.
MFC вводит новые стандарты для использования своих классов. Описание методов и элементов должны находиться в %%%.h - где %%% - имя класса. в %%%.cpp - находяться сами функции-члены.

PS ну чего это, я же говорил - сырая smile, жду примеров использования классов, их написания и т.д и т.п., примеров из MFC - теорию я вроде написал

Автор: Vyacheslav 31.1.2005, 13:07
Перед тем как написать статью надо составить ее план. Четко уяснить для себя, о чем ты хочешь поведать миру и соответственно предcтавить как ты это будешь делать. Должна существовать основноя идея (тезис) статьи. А в чем идея твоей статьи?
Это во-перых.
Во-вторых. Если речь идет ООП, то твой пример - это и есть программа , написанная на ООП.
cout - это класс
В-третьих. ООП и событийно-управляемая программа - это две совершенно независимых концепции, никак не связанные между собой. Конечно в рамках одной программы эти две концепции могут существовать вместе, но можно написать программу используя парадигму ООП и совершенно не используя события (твой пример). Обратное тоже верно. Существуют также программы, использующие события, но неиспользующие парадигмы ООП ( например, любая программа, написанная на чистом WinApi).
Так о чем статья?

Автор: maxim1000 31.1.2005, 13:21
мне кажется, не стоит в одной статье рассказывать о трех довольно общирных темах: ООП, событийно-управляемых программах, MFC
иначе может получиться одно из двух:
1. большой учебник на три тома smile
2. настолько поверхностная статья, что пользы будет мало
P.S.
вот только для первого случая лично у меня бы терпения не хватило бы smile

Автор: En_t_end 31.1.2005, 15:30
Vyacheslav 
smile
Дык зачем ?, моя цель - только дать новую глубину - 5 метров smile (потому что считаю познание языка программирования подобно погружению на подв.лодке - ты все глубже и глуюже познаешь истины)

"Во-вторых. Если речь идет ООП, то твой пример - это и есть программа , написанная на ООП."
Извини... я не копал так глубоко... smile - я говорил пока совершенно про другое - про последовательность программы, точнее её составлющих функций например. Тем более нельзя говорить, что используя cout - ты уже используешь всю мощь ООП !!! а то что cout - это класс - мне прекрасно известно.

" ООП и событийно-управляемая программа"
Да - это независимые вещи, но вместе - это основа MFC, которая является примером удачного исползования ООП, слдеовательно можно предположить, что новейшие тезисы в ООП будут направлены на реализацию второй. имхо.
" но неиспользующие парадигмы ООП"
Да, но мне кажется, что чистый WinApi + ООП != good результат, так как я прыгал от программирования в одиночку.
ИХМО ИМХО.
Зря наверное я выложил этот набросок - в пух и прах.

Автор: np9mi7 31.1.2005, 15:49
OOD & OOP, это те вещи бех которых сейчас уже никак... Так это и к лучшему! smile Код меньше, понятнее, программы легко модернизируются...

На мой взгляд имеет смысл говорить о OOD и OOP на C++ как прибавку к этому...

Или ты хочешь рассказать о программировании на С++ под MS Windows в ООП стиле?

Автор: En_t_end 31.1.2005, 15:54
"Или ты хочешь рассказать о программировании на С++ под MS Windows в ООП стиле? "
Типа того... чтобы не возникало таких вопросов : http://forum.vingrad.ru/index.php?showtopic=41042
Если и возникали, то сразу перенаправлялись в фак.

Автор: np9mi7 31.1.2005, 17:10
Тогда имеет смысл дать вначале сами основы OOD и потом как эти принципы реализуются в C++ в OOP стиле программирования, а потом интерфейс для программирования в MS Windows.... Ну и в качестве примера MFC....

Короче задача Наполеоновская! И всем новечкам можно посоветовать читать Страуструпа, Буча и Круглински....

А по MS читать MSDN...

Или ты хочешь написать обзор? Если развернуто, то лучшей тактикой, по моему мнению, будет рассказ об основах + ссылки на доп. литературу или статьи в интернете...
Добавлено @ 17:15
Но опять: Что такое основы вин апи? Или основы программирование в стиле ООП на C++?

Вин апи - интерфейс, его можно узнать из справки...

С++ язык который поддерживает ООП парадигму программирования...

В пинципы ООD нужно воткнуться, а потом писать на с++!!!

БУЧ ФОРЕВЕР!!! smile

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)