Объектно-ориентированное программирование на C++


Объектно-ориентированные расширения С++


  • Консольный ввод и вывод в С++
  • Введение в классы
  • Перегружаемые функции и операторы (overload)
  • Рассмотрев свойства С++, которыми можно пользоваться, не отказываясь от традиционного подхода к программированию, обратимся к объектно-ориентированным методам программирования. Прежде всего, вспомним три основные свойства, при наличии которых можно говорить, что некоторый язык предназначен для объектно-ориентированного программирования: ИНКАПСУЛЯЦИЯ, ПОЛИМОРФИЗМ и НАСЛЕДОВАНИЕ.

    С++ соответствует определению языка объектно-ориентированного программирования по всем трем классическим критериям. Правда, если Вы знакомы с языком С по описаниям Кернигана и Ритчи, Вас очень удивит новая терминология и форматы записи. В С++ привычные операторы и обозначения используются совсем иначе. По сравнению с "классическим" С Страуструп ввел всего несколько дополнительных ключевых слов и операторов, но "выжал" из них максимально много. При поверхностном взгляде программа на С++ может выглядеть очень похожей на программу на С, но операторы и выражения в ней сочетаются совсем не так.

    Рассмотрим простую пробную программу, которая требует, чтобы пользователь ввел целое число и символьную строку, а затем выводит только что принятую информацию.

    Вариант на стандартном С Вариант на С++
    #include "stdio.h"



    int i;

    char temp[80], buff[80];

    printf ("Введите число:");

    gets(temp); i = atoi(temp);

    printf ("Введите символьную строку:");

    gets (buff);

    printf ("Вы ввели число: %d\n", i);

    printf ("Вы ввели строку: %s\n", buff);

    #include "iostream.h"

    int i;

    char buff[80];

    cout << "Введите число:";

    cin >> i;

    cout << "Введите символьную строку:";

    cin >> buff;

    cout << "Вы ввели число:" << i << "\n";

    cout << "Вы ввели строку:" << buff << "\n";

    Эта коротенькая программа представляет собой превосходную иллюстрацию объектно-ориентированной природы С++. Здесь cin - это объект, воспринимающий ввод пользователя, cout - объект, обеспечивающий форматный вывод. Когда Вы обмениваетесь сообщениями с объектами cin и cout, форма и тип передаваемых данных определяют действия, которые требуется выполнить (полиморфизм), содержание выполняемых операций в вызывающей программе никак не отражается (инкапсуляция), и оба используемых объекта представляют собой конкретные реализации одного и того же порождающего класса iostream (наследование).



    Содержание раздела