|
|
|
|
|
для: cheops
(10.12.2007 в 14:56)
| | А еще чтобы не делать лишних ошибок, советую почитать это:
http://steps3d.narod.ru/tutorials/c-minus-minus.html
Ну и это:
http://steps3d.narod.ru/tutorials/hungarian-notation.html | |
|
|
|
|
|
|
|
для: 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 Язык сложный, так как объединяет и системный уровень (указатели на переменные, указатели на функции), так и очень абстрактный уровень (ООП, шаблоны). Через это, практически ни один программист всеми возможностями языка не пользуется (и зачастую даже всех не знает) - в отличие от других языков здесь речь идёт не о сторонних библиотеках, а именно о базовых конструкциях синтаксиса - столько ньюансов, что в голове держать невозможно. | |
|
|
|
|
|
|
|
для: cheops
(10.12.2007 в 11:35)
| | я в С++ не большой специалист, хочу поправить этот недостаток, а так как ООП - это основа С++, то
хотелось бы узнать что именно понимается под понятием: "Объектные свойства языка С++"? | |
|
|
|
|
|
|
|
для: Crux
(10.12.2007 в 09:30)
| | Хм... объектно-ориентированное программирование - это основа C++, по сути C++ был создан путём расшения языка C объектно-ориентированными возможностями. C++ считается первым промышленным объектно-ориентированным языком программирования, получившим более или менее широкое распространение.
Объектно-ориентированная модель не похожа ни на одну объектно-ориентированную модель из других языков (общие черты разумеется имеются) - вероятно это единственный язык, где объектно-ориентированные возможности распространены на все аспекты языка (типы данных, указатели, перегрузка операторов, шаблоны) - поэтому язык считается многогранным и самым сложным. Если брать геометрическую аналогию:
ООП в PHP - это линия;
ООП в Java - плоскость;
ООП в C++ - это куб (а может и многомерная фигура - настолько здорово всё разработано);
>хотелось бы узнать поподробнее.
А что конкретно хотите узнать? | |
|
|
|
|
|
|
| собственно сабж
хотелось бы узнать поподробнее. | |
|
|
|
|