Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Перегрузка функций




Объявление класса

 

Класс используется для создания объектов. Основная форма имеет вид:

 

class имя класса

{

закрытые функции и переменные

public:

открытые функции, функции-члены и переменные

}

список объектов;//не является обязательным

 

Закрытые функции и переменные - члены(members) доступны только для других членов этого класса.

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

Функции, объявленные внутри описания класса называются функциями членами (member functions).

Для определения функций-членов используется форма:

 

тип имя класса:: имя функции-члена (параметры)

{

тело функции

}

 

Два двоеточия после имени класса называются операцией расширения области видимости (scope resolution operator).

Существуют несколько привилегий доступа к данным и функци­ям класса:

· private

· protected

· public

Закрытые private имена имеют наиболее ограниченный доступ, раз­решенный только функциям данного класса. Доступ производных классов к закрытым методам базовых классов запрещен.

Защищенные protected имена имеют доступ, разрешенный методам данного класса и производных от него классов.

Общедоступные public имена имеют неограниченный доступ, разре­шенный методам всех классов и их объектов.

По умолчанию все имена относятся к private и, следовательно, не могут использоваться функциями не входящими в состав класса.

Объявление класса только определяет тип объектов, а сами объекты не задает, т. е. память не выделяется. Для создания объектов имя класса используется как спецификатор типа данных.

После создания объекта к открытым членам класса можно обращаться, используя операцию точка.

 

#include <iostream.h>

class class1 {//объявлен сласс class1

int a; //доступна для функций членов class1

public:

int kwadrat(int b);//функция член класса class1

};

int class1::kwadrat(int b) //определение функции kwadrat()

{

a=b*b;

return a;

}

main()

{

class1 c; //создается объект с типа class1

cout<<" "<<c.kwadrat(3)<<" ";//вычисление и вывод квадрата трех

return 0;

}

 

Две или более функции, имеющие одно и тоже имя, называются перегружеными. Обычно функции отличаются количеством и типом аргументов. Транслятор автоматически на основании количества или типов аргументов выберет правильный вариант.

#include <iostream.h>

void k(int a);//прототип первой функции

void k(int a, float b); //прототип второй функции

void k(int a) //описание первой функции

{

cout << a <<" ";

}

void k(int a, float b) //описание второй функции

{

cout <<a<<" "<< b <<" ";

}

main()

{

k(4);//вызов первой функции

k(5, 10.2);//вызов второй функции

return 0;

}

Большинство свойств компонент в Borland C++ Builder имеют перегруженные методы чтения и записи, что позволяет предотвратить множество ошибок программиста, связанных с несоответствием типов данных.

Например оператор

Label1->Caption=4;

Не приведет к ошибке, несмотря на то, что свойство Caption является строковым типом AnsiString (подробнее на лабораторных работах), т.к. при вызове метода записи вызовется соответствующий перегруженный метод для случая, когда аргумент является целым числом.




Поделиться с друзьями:


Дата добавления: 2014-01-13; Просмотров: 323; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.008 сек.