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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Для начинающих... основы ООП по С-++'ки, :) 
:(
    Опции темы
En_t_end
Дата 30.1.2005, 20:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


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

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



Статья пока слишком сыра... поэтому кто видел - забудьте !

Это сообщение отредактировал(а) En_t_end - 30.1.2005, 20:55
PM MAIL ICQ Skype GTalk Jabber   Вверх
chipset
Дата 31.1.2005, 05:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


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

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



Ты это, давай, выкладывай, доработаем и засунем в фак (сорри за мат) 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   Вверх
En_t_end
Дата 31.1.2005, 09:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


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

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



Здравствуй дорогой человек...// блин получилось прям, как на деревню дедушке 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 - теорию я вроде написал
PM MAIL ICQ Skype GTalk Jabber   Вверх
Vyacheslav
Дата 31.1.2005, 13:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


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

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



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


--------------------
С уважением, Вячеслав Ермолаев
PM MAIL WWW ICQ   Вверх
maxim1000
Дата 31.1.2005, 13:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


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

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



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


--------------------
qqq
PM WWW   Вверх
En_t_end
Дата 31.1.2005, 15:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


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

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



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

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

" ООП и событийно-управляемая программа"
Да - это независимые вещи, но вместе - это основа MFC, которая является примером удачного исползования ООП, слдеовательно можно предположить, что новейшие тезисы в ООП будут направлены на реализацию второй. имхо.
" но неиспользующие парадигмы ООП"
Да, но мне кажется, что чистый WinApi + ООП != good результат, так как я прыгал от программирования в одиночку.
ИХМО ИМХО.
Зря наверное я выложил этот набросок - в пух и прах.
PM MAIL ICQ Skype GTalk Jabber   Вверх
np9mi7
Дата 31.1.2005, 15:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



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

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

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


--------------------
"Я точно знаю то, что ничего не знаю..." Сократ.
evolution project
PM MAIL WWW ICQ MSN   Вверх
En_t_end
Дата 31.1.2005, 15:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


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

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



"Или ты хочешь рассказать о программировании на С++ под MS Windows в ООП стиле? "
Типа того... чтобы не возникало таких вопросов : http://forum.vingrad.ru/index.php?showtopic=41042
Если и возникали, то сразу перенаправлялись в фак.
PM MAIL ICQ Skype GTalk Jabber   Вверх
np9mi7
Дата 31.1.2005, 17:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



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

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

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

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

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

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

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

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


--------------------
"Я точно знаю то, что ничего не знаю..." Сократ.
evolution project
PM MAIL WWW ICQ MSN   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
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.0505 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


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

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