Форум: Форум C++Разное
Новые темы: 00
PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум C++

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум (новые сообщения вниз) Структурный форум

тема: Объектные свойства языка С++

Сообщения:  [1-5] 

 
 автор: alex19921992   (10.12.2007 в 22:12)   письмо автору
 
   для: cheops   (10.12.2007 в 14:56)
 

А еще чтобы не делать лишних ошибок, советую почитать это:
http://steps3d.narod.ru/tutorials/c-minus-minus.html

Ну и это:
http://steps3d.narod.ru/tutorials/hungarian-notation.html

  Ответить  
 
 автор: cheops   (10.12.2007 в 14:56)   письмо автору
 
   для: Crux   (10.12.2007 в 13:18)
 

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

В обычном языке программирования определён базовый набор классов int, float и т.п. Решая задачу вы оперируете машинными типами, заданными языком программирования. Да имеются специализированные языки программирования, которые вводят свои сущности для конкретной предметной области. Однако, под каждую предметную область язык не разработаешь - дорого, сложно. Поэтому вводят объектно-ориентированный подход - программист сам определяет свой собственный тип и его поведение, а потом оперирует им. Создаёт мини-язык для своей предметной области.

Тип такой пользовательской переменной называется классом (class),
А сама переменная объектом класса.

Класс задаёт поведение объекта, определяя его свойства (переменные входящие в состав объекта) и методы (функции, которые оперируют над объектом).

В результате вместо того, чтобы оперировать машинными терминами - целые числа, строки и т.п. вы можете оперировать моделями предметной области. Например, вводите вы класс клиента (client), работника (employee) и договора между клиентом и работником (contract). В результате вы получаете возможность заключать договор между работником и клиентом одной интуитивно понятной строкой:
contract = client + employee

А представляете сколько потребовалось бы кода каждый раз и сколько бы ошибок было в нём, если бы не было построен это специализированный мини-язык. А так вы можете построить язык предметной области и можете с ним потом работать и не только работать, но и развивать. Потребовалось вам ввести несколько типов работников - вы можете унаследовать от класса employee новые класса - при этом вам не придётся переписывать методы входящие в состав employee - они автоматически войдут в состав новых классов.

PS Любая книга по C++ рассматривает объектно-ориентированные возможности - вы не пройдёте мимо их. Если вам всё же это удастся вы не будете знать языка C++, вы будете знать язык C. C++ конечно не является полностью объектно-ориентированным языком, как Smalltalk или тот же JavaScript, однако избежать объектов практически невозможно. Даже при выводе в стандартный вывод вы используете перегруженный оператор << объекта cout стандарной библиотеки iostream.
PPS Язык сложный, так как объединяет и системный уровень (указатели на переменные, указатели на функции), так и очень абстрактный уровень (ООП, шаблоны). Через это, практически ни один программист всеми возможностями языка не пользуется (и зачастую даже всех не знает) - в отличие от других языков здесь речь идёт не о сторонних библиотеках, а именно о базовых конструкциях синтаксиса - столько ньюансов, что в голове держать невозможно.

  Ответить  
 
 автор: Crux   (10.12.2007 в 13:18)   письмо автору
 
   для: cheops   (10.12.2007 в 11:35)
 

я в С++ не большой специалист, хочу поправить этот недостаток, а так как ООП - это основа С++, то
хотелось бы узнать что именно понимается под понятием: "Объектные свойства языка С++"?

  Ответить  
 
 автор: cheops   (10.12.2007 в 11:35)   письмо автору
 
   для: Crux   (10.12.2007 в 09:30)
 

Хм... объектно-ориентированное программирование - это основа C++, по сути C++ был создан путём расшения языка C объектно-ориентированными возможностями. C++ считается первым промышленным объектно-ориентированным языком программирования, получившим более или менее широкое распространение.
Объектно-ориентированная модель не похожа ни на одну объектно-ориентированную модель из других языков (общие черты разумеется имеются) - вероятно это единственный язык, где объектно-ориентированные возможности распространены на все аспекты языка (типы данных, указатели, перегрузка операторов, шаблоны) - поэтому язык считается многогранным и самым сложным. Если брать геометрическую аналогию:
ООП в PHP - это линия;
ООП в Java - плоскость;
ООП в C++ - это куб (а может и многомерная фигура - настолько здорово всё разработано);

>хотелось бы узнать поподробнее.
А что конкретно хотите узнать?

  Ответить  
 
 автор: Crux   (10.12.2007 в 09:30)   письмо автору
 
 

собственно сабж
хотелось бы узнать поподробнее.

  Ответить  

Сообщения:  [1-5] 

Форум разработан IT-студией SoftTime
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования