Пятница, 03.05.2024, 18:57
 
Главная Регистрация Вход
Приветствую Вас, Гость · RSS
Меню сайта
Категории каталога
Тех. раздел [6]
Всё что касается железа, програм
Учебные [0]
всё что связано с учёбой
Наш опрос
Вам нравится дизайн сайта?
Всего ответов: 43
 Каталог статей
Главная » Статьи » Тех. раздел

Введение в C++

Язык С++ был разработан в Bell Laboratories(США) в 1983г. как расширение языка С. Символы “++” – представляют оператор инкрементации в языке С, что в действительности означает выполнимость С-программ  в среде С++. Еще одним источником С++ разработчик языка Б. Страуструп называет язык Simula67, из которого позаимствованы понятия класса, виртуальных функций. Класс соответствует введенному пользователем типу, для которого обеспечивается набор данных, операции над данными, их сокрытие и др. В настоящее время классы рассматриваются как носители таких черт объектно-ориентированного программирования как инкапсуляция, наследование, полиморфизм.

Существует несколько реализаций системы, поддерживающих стандарт С++, из которых можно выделить реализации Visual C++ (Microsoft), Borland C++ (Inprise), а также реализацию в системе UNIX.  Отличия относятся, в основном, к используемым библиотекам классов и интегрируемым средам.

В С++ можно использовать потоковый ввод/вывод: оператор << осуществляет вывод в поток cout, оператор  >> осуществляет ввод из потока cin. Такой ввод/вывод подддерживается включением файла <iostream.h>. Например:

 

// вывод строки символов (р01)

#include <iostream.h>

void main()

{

cout << “Hello, world \n”;

}

 

В программе  р01 использован однострочный комментарий C++, который начинается от символов // и продолжается до конца строки. Наряду с таким комментарием, может быть использован обычный комментарий языка С, ограниченный символами /* и */. Программа выводит строку “Hello,world” в выходной поток cout , ‘\n’ – символ перехода к следующей строке.

Отметим, что функция main(), как и другие функции имеет возвращаемое значение, если не указан тип void. По умолчанию это значение типа int.

Язык С++ позволяет объявлять локальные переменные в любом блоке кода, которые будут известны только в этом блоке ниже объявления.

 

//вычисление факториала (р02)

#include <iostream.h>

main() //по умолчанию возвращает значение типа int

{

int n;

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

cin>>n; //ввод

int fact=1;

for(int j=n;j>=1;j--)  fact=fact*j;

cout<<”факториал равен:”<<fact;

return 0;//возвращаемое значение

}

 

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

 

//перегрузка abs (р03)

#include <iostream.h>

int ABS(int n);

double ABS(double n);

main()

{

//вызов ABS (int)

cout<<"абсолютная величина-10:" << ABS(-10) << "\n";

//вызов ABS(double)

cout<<"абсолютная величина-10.01:"<< ABS(-10.01) << "\n";

return 0;

}

int ABS(int n)

{

cout << "В целом ABS()\n";

return n<0 ? -n : n;

}

double ABS(double n)

{

cout << "в double ABS() \n";

return n<0 ? -n : n;

}

 

В C++ используются аргументы функций по умолчанию. При этом один или несколько параметров при всех вызовах могут быть одинаковы, кроме особых случаев. Например:

 

void func(int x=0, int y=1);

//аргументы задаются только при первом объявлении

 void main()

{

 func(1,2);//значения по умолчанию не используются

   func(1); //x=1,y=1

   func(); //x=0, y=1.

 }

void func(int x,int y)

{

int z=x+y;

}

 

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

В С++ реализован ссылочный тип, позволяющий передавать параметры функций не только по значению, но и по адресу. Например:

 

//функция меняет местами a и b (р04)

#include<iostream.h>

void swap(int &a, int &b)

{int c;

   c=a;

   a=b;

   b=c;

}

void main()

 {int a=3,b=4;

 swap(a,b); // поменять местами

cout<<a<<b<<endl;

}

В С++ введены новые операции  :: , new, delete. Оператор расширения области видимости  ::”  используется для доступа к членам базового класса (оператор вида basis::name), для указания внешней или глобальной области видимости, скрытой локальным контекстом (оператор вида ::global_name). Оператор class_name::name указывает доступ к элементам класса. Например, basis::func() означает принадлежность функции func() области видимости класса basis. Фактически этот оператор используется для указания маршрута к идентификатору. Рассмотрим пример:

 

#include <iostream.h> //p05

#include <conio.h>

int i=1;

class basis

{

public:

int i;

basis(){i=2;}

 void func(){

cout<<::i<<" ";}//доступ к глобальной компоненте i=1

            };

class inherit:public basis{

public:

int i;

inherit(){i=3;}

void func()

{

cout<<basis::i<<" ";//i=2

basis::func();//i=1

        } 

  };

void main (){

basis ob1;                     

inherit ob2;

ob1.func();

ob2.func();

//cout<<basis::i<<" ";//i=2

//cout<<inherit::i;//i=3

while (!kbhit());

}

 

 

Категория: Тех. раздел | Добавил: miral (21.11.2008)
Просмотров: 958 | Рейтинг: 0.0/0 |
Всего комментариев: 0
Имя *:
Email *:
Код *:
Форма входа
Поиск
Друзья сайта
Статистика

Онлайн всего: 1
Гостей: 1
Пользователей: 0