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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Дать совет по ООП 
:(
    Опции темы
bsa
Дата 30.9.2009, 17:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


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

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



Цитата(andrew_121 @ 30.9.2009,  17:43)
Цитата(bsa @  30.9.2009,  17:42 Найти цитируемый пост)
В ООП ты сам можешь создавать свои собственные типы - классы

Они же объекты.

Объект - это экземпляр класса. Т.е. переменная. А класс - это тип.
PM   Вверх
andrew_121
Дата 30.9.2009, 17:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Кодофей
****


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

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



Цитата(kemiisto @  30.9.2009,  17:45 Найти цитируемый пост)
Садись, два.

=
Цитата(bsa @  30.9.2009,  17:42 Найти цитируемый пост)
классы


Добавлено через 44 секунды
bsa, В контексте ТС, это весьма правильное утверждение.


--------------------
Удалил аккаунт. Прощайте!
PM MAIL   Вверх
zim22
Дата 30.9.2009, 18:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


depict1
****


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

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



Цитата(kemiisto @  30.9.2009,  16:46 Найти цитируемый пост)
Три фундаментальных принципа объектно-ориентированного программирования (Алан Кей):    
* Объект - базовая единица объектно-ориентированной системы.    
* Объекты могут обладать состоянием.    
* Посылка сообщения - единственный способ обмена информацией между объектами.


если сравнить с определением Гради Буча, то Алан Кей сформулировал принципы не объектно-ориентированного программирования, а программирования с помощью абстрактных типов данных smile

Цитата

Object-oriented programming is a method of implementation in which programs are organized as cooperative collections of objects, each of which represents an  instance of some class, and whose classes are all members of a hierarchy of classes united via inheritance relationships.

There are three important parts to this definition: 
(1) Object-oriented programming uses objects, not algorithms, as its fundamental logical building blocks
(2) each object is an instance of  some class; and 
(3) classes may be related to one another via inheritance relationships . 

A program may appear to be object-oriented, but if any of these elements is missing, it is not an object-oriented program. 
Specifically, programming without inheritance is distinctly not object - oriented; that would merely be programming with abstract data types.

***
и в дополнение:
Цитата

Основой объектно-ориентированного программирования является т.н. объектная модель.
Она состоит из 4 главных элементов и 3 вспомогательных.
Под "главными" подразумевают элементы, без любого из котоорых модель не является объектно-ориентированной.
Главные:
1) Абстракция
2) Инкапсуляция
3) Модульность
4) Иерархия

Вспомогательные:
1) Контроль типов
2) Параллелизм
3) Персистентность


Это сообщение отредактировал(а) zim22 - 30.9.2009, 18:32


--------------------
PM MAIL   Вверх
kemiisto
Дата 30.9.2009, 18:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Дикий Кот. =^.^=
****
Награды: 1



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

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



Цитата(zim22 @  30.9.2009,  19:24 Найти цитируемый пост)

если сравнить с определением Гради Буча, то Алан Кей сформулировал принципы не объектно-ориентированного программирования, а программирования с помощью абстрактных типов данных 

Что-то я не совсем уверен, что такое сравнение здесь уместно. Ну и, собственно, как многие ++ программисты ты, видимо, разницу между АТД и объектом не совсем уловил. Язык не позволяет. smile 

Цитата(zim22 @  30.9.2009,  19:24 Найти цитируемый пост)
и в дополнение:

Я уже 1000 раз говорил про это дополнение. Надоело.

Это сообщение отредактировал(а) kemiisto - 30.9.2009, 18:37


--------------------
PM MAIL WWW GTalk Jabber   Вверх
zim22
Дата 30.9.2009, 19:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


depict1
****


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

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



Цитата(kemiisto @  30.9.2009,  18:37 Найти цитируемый пост)
Я уже 1000 раз говорил про это дополнение. Надоело.

угу, нашёл.


--------------------
PM MAIL   Вверх
kemiisto
Дата 30.9.2009, 20:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Дикий Кот. =^.^=
****
Награды: 1



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

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



Цитата(zim22 @  30.9.2009,  20:00 Найти цитируемый пост)
угу, нашёл. 

Там жестоко было. smile 


--------------------
PM MAIL WWW GTalk Jabber   Вверх
NewDima
Дата 1.10.2009, 06:47 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 922
Регистрация: 20.2.2006
Где: <?here?>

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



Syltan, на вопрос ответом:
твое понятие размещения объекта (то, что ты понимаешь под ним) - абстрактно.
Объекты (экземпляры классов), как собственно и объекты других типов размещены в ПАМЯТИ, а не на форме или другом контроле.
Ты объявляешь переменную типа int. Что происходит?
Выделяется память в четыре байта под эту переменную, так? так.
Ты объявляешь экземпляр определенного класса. Что происходит?
Выделяется память, только уже по другому механизму. Фактически, форма - объект операционной системы, к которому есть класс-оболочка, предназначенный для упрошенного управления формой. Т.е. экземпляр класса.
Когда ты описываешь свой класс и инстанцируешь его, ты получаешь доступ к экземпляру класса через переменную, которая фактически указывает на экземпляр класса. Например так:
Код

class myClass {
  public:
    void myMethod() {}
}
myClass instance();

Где-нибудь ты видишь обращение к какой-нибудь пресловутой форме? Нет, оно просто отсутствует.
Другое дело, что ты понимаешь под классом компонент. Это не одно и тоже.
Компонент, графический или нет, является так же реализацией класса, который дает доступ к определенному объекту. Например класс TButton дает доступ (предоставляет интерфейс) к компоненту кнопка, через который ты можешь устанавливать этой кнопке различные свойства (высоты, длина и т.п.).
Borland C++ заставляет думать человека, что классы, которые мы описываем, бросают на форму. На самом деле это для упрощенного обращения и незасорения глобального пространства имен.
Так вот, о твоем понимании класса. Класс предназначен для моделирования какого-либо объекта настоящей предметной области. Что это значит?
Ну например пишешь ты игру-бомбермен ( smile ). Вот гоняет там чувачок и бомбами следит. Ага, тогда создадим класс "Чувачок". Который будет иметь возможность бросать бомбы (фактически реализует метод "Бросить бомбу"). Так же класс должен предоставлять возможность перемещать это бедное тело. Например предоставить метод шага. Ага, шаг может быть вверх, вниз, влево, вправо. Тут ты задумался, писать четыре метода, или один, которому передашь направление. И в таком русле дальше и дальше.
Ой, наверное ты заметил, что ни о каких формах речь ни шла. Не заметил? Прочитай заново.
Обо всем остальном уже было сказано

Добавлено через 57 секунд
upd инстанцировать - создавать экземпляр класса. От английского слова instance - экземпляр
PM ICQ   Вверх
AndreyDe
Дата 2.10.2009, 16:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Здравствуйте, хотел создать свою тему, но эта вроде подходящая...
Вопрос аналогичный smile
Цитата
Скажите, на какой вид проектов на студии 2005 стоит переходить после изучения полностью консоли на с++ в студии 2005, чтоб  писать полноценные  приложения виндоус на форме с использованием кнопок и т.д.

Ну не обязательно VS 2005, можно 2008 можно и не  VS.
Учу C++ по книжке Хортона, доехал до MFC. И чего то от общения с этой толпой деклассированных элементов становится тоскливо. Стоит ли вообще бороться с MFC и Win API или переключиться на Qt например. или GTK? Говоря "стоит", я имею в виду перспективность и целесообразность, особенно при наличии альтернатив. 
PM MAIL   Вверх
andrew_121
Дата 2.10.2009, 17:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Кодофей
****


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

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



Цитата(AndreyDe @  2.10.2009,  16:55 Найти цитируемый пост)
доехал до MFC

это только VS

Добавлено через 1 минуту и 48 секунд
Цитата(AndreyDe @  2.10.2009,  16:55 Найти цитируемый пост)
Стоит ли вообще бороться с MFC и Win API

WinAPI стоит.

Цитата(AndreyDe @  2.10.2009,  16:55 Найти цитируемый пост)
или переключиться на Qt например. или GTK?

Спорно.


--------------------
Удалил аккаунт. Прощайте!
PM MAIL   Вверх
AndreyDe
Дата 2.10.2009, 17:19 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Цитата(andrew_121 @  2.10.2009,  17:04 Найти цитируемый пост)
WinAPI стоит.

Какие дивиденды от изучения? Это ведь специфичная технология и далеко не новая. Возможно завтра ее не будет вообще.
PM MAIL   Вверх
GoldFinch
Дата 2.10.2009, 17:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата



****


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

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



Цитата(AndreyDe @  2.10.2009,  18:19 Найти цитируемый пост)
WinAPI  .... завтра ее не будет вообще. 

спс, поржал

Добавлено через 57 секунд
по вопросу -на С++ писать GUI - бесперспективно. для этого есть другие языки.
PM MAIL ICQ   Вверх
andrew_121
Дата 2.10.2009, 17:27 (ссылка)    | (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Кодофей
****


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

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



AndreyDe, э... нет слов...


--------------------
Удалил аккаунт. Прощайте!
PM MAIL   Вверх
bsa
Дата 2.10.2009, 18:00 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


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

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



Цитата(AndreyDe @ 2.10.2009,  16:55)
Стоит ли вообще бороться с MFC и Win API или переключиться на Qt например. или GTK? Говоря "стоит", я имею в виду перспективность и целесообразность, особенно при наличии альтернатив.

Бороться не стоит. MFC вообще изучать не стоит. WinAPI только, когда понадобится (более того, полностью изучать скорее всего не понадобится никогда) - уж больно она глупо спроектирована.
Если хочешь писать программы с GUI на С++, то лучший выбор Qt. На худой конец Gtk и wxWidgets, но чем они лучше Qt не знаю (раньше их лицензия позволяла делать закрытые программы, а у Qt нет - сейчас тоже позволяет).
PM   Вверх
AndreyDe
Дата 2.10.2009, 21:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Цитата(GoldFinch @  2.10.2009,  17:24 Найти цитируемый пост)
Цитата(AndreyDe @  2.10.2009,  18:19 Найти цитируемый пост)
WinAPI  .... завтра ее не будет вообще. 

спс, поржал

Я имел в виду Win32 API, написанные на С, паскале и фортране. И насколько долго будут поддерживаться старые функции, неизвестно.
О новых пока ничего не знаю.

Цитата
Добавлено через 57 секунд
по вопросу -на С++ писать GUI - бесперспективно. для этого есть другие языки. 

 Здесь уж я поулыбался

Это сообщение отредактировал(а) AndreyDe - 2.10.2009, 21:08
PM MAIL   Вверх
GoldFinch
Дата 2.10.2009, 21:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата



****


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

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



AndreyDe, ты не знаешь что такое WinAPI. иди в гугл.

или ты имел в виду вообще любые апи под вин32 ? так причем тут они %)

Это сообщение отредактировал(а) GoldFinch - 2.10.2009, 21:21
PM MAIL ICQ   Вверх
Страницы: (4) Все 1 2 [3] 4 
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C/C++: Для новичков"
JackYF
bsa

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь


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

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


 




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


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

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