Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 23.09.2015, 13:49   #1
Ларкин
Пользователь
 
Регистрация: 20.06.2015
Сообщений: 55
Хорошо ООП

Прошу наглядным примером из программ, показать 3 принципа ООП:
инкапсуляция, полиморфизм, наследование. Заранее благодарю за помощь!
Ларкин вне форума Ответить с цитированием
Старый 23.09.2015, 14:04   #2
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,716
По умолчанию

Чем вам примеры в вики и учебнике не устраивают?
p51x вне форума Ответить с цитированием
Старый 23.09.2015, 14:25   #3
Smitt&Wesson
Старожил
 
Аватар для Smitt&Wesson
 
Регистрация: 31.05.2010
Сообщений: 13,543
По умолчанию

Инкапсуляция.
std::x=y;// x включаем в пространство имён. Считаем что "y" уже определена. Не факт, можно и иначе сказать, но - лениво.

Полиморфизм.
Есть две функции:
Код:
MyFunction(int a, float b);
MyFunction(boolean a, int b);
Так вот, название функции одно, а параметры разные. В зависимости от этого, в релизе будет выбрана одна из них. Каждую, нужно описать в cpp файле.

Наследование:
Мы описали функфию, но не предусмотрели в ней ней несколько нужных нам релизов. Не беда. Мы берём базовый класс (В принципе любой) и дописываем такую хрень:
Код:
class MyClass : public TObject
{
  // Пишем чё хотим. Ваши дополнения, будут включены в функцию. К тому-же все доступные элементы, отмеченные в классе TObject, тоже будут доступны.
}
Но и здесь, не всё так безоблачно. Там ещё много подводных камней. А когда начинаешь реализовывать и граблей.
Пиши пьяным, редактируй трезвым.
Справочник по алгоритмам С++ Builder

Последний раз редактировалось Smitt&Wesson; 23.09.2015 в 14:30.
Smitt&Wesson вне форума Ответить с цитированием
Старый 23.09.2015, 14:37   #4
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Ага, в книжках уж точно лучше примеры, чем то, что выше.

Про полиморфизм автор скорее всего не о таком варианте полиморфизма спрашивал раз про ООП речь.

Где в первом примере можно увидеть инкапсуляция даже после пол-литра вряд ли станет понятно.

Цитата:
в релизе будет выбрана
а "в дебаге" значит не будет?
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.

Последний раз редактировалось Alex11223; 23.09.2015 в 14:39.
Alex11223 вне форума Ответить с цитированием
Старый 23.09.2015, 14:39   #5
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Код:
class TParent{
	// Икс и Цэ инкапсулированы в класс
public: 
	int x;
	char c;
};

class TChild :TParent { //А это пример наследования.
	//Класс TChild наследует свойства TParent
public:
	void aga(){x=123; c='1';}
}
Если не опшибаюсь
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 23.09.2015, 14:54   #6
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Под инкапсуляцией обычно имеют в виду не только связывание данных, но и скрытие.
https://ru.wikipedia.org/wiki/%D0%98...D0%B8%D0%B5%29
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Старый 23.09.2015, 16:33   #7
Ларкин
Пользователь
 
Регистрация: 20.06.2015
Сообщений: 55
По умолчанию

БЛАГОДАРЮЮ!
Ларкин вне форума Ответить с цитированием
Старый 23.09.2015, 17:21   #8
Smitt&Wesson
Старожил
 
Аватар для Smitt&Wesson
 
Регистрация: 31.05.2010
Сообщений: 13,543
По умолчанию

Цитата:
Сообщение от Alex11223 Посмотреть сообщение
Под инкапсуляцией обычно имеют в виду не только связывание данных, но и скрытие.
https://ru.wikipedia.org/wiki/%D0%98...D0%B8%D0%B5%29
Это от лукавого .
Пиши пьяным, редактируй трезвым.
Справочник по алгоритмам С++ Builder
Smitt&Wesson вне форума Ответить с цитированием
Старый 23.09.2015, 17:37   #9
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
Это от лукавого
Ого! Дьявол и к сотворению ООП причастен? О_о
Я рад.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 23.09.2015, 19:41   #10
_Bers
Старожил
 
Регистрация: 16.12.2011
Сообщений: 2,329
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
Код:
class TParent{
	// Икс и Цэ инкапсулированы в класс
public: 
	int x;
	char c;
};

class TChild :TParent { //А это пример наследования.
	//Класс TChild наследует свойства TParent
public:
	void aga(){x=123; c='1';}
}
Если не опшибаюсь
ошибаетесь.
_Bers вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
С++ ООП Leet Помощь студентам 1 24.02.2013 17:04
ООП kn0w Помощь студентам 7 11.01.2013 14:18
ООП на С++ dimys1237 Общие вопросы C/C++ 5 18.12.2012 22:28
Паскаль ООП. Примеры программ с использованием ООП SeЯgey Помощь студентам 5 13.05.2009 21:55