Разделы презентаций


Лекция № 3 по дисциплине Объектно-ориентированное программирование на тему:

Содержание

Доступ к элементам класса Ключевые слова public и private называются спецификаторами доступа к элементам класса.Инкапсуляция в ООП – это сокрытие деталей реализации класса. Инкапсуляция - возможность изолирования данных и функций от

Слайды и текст этой презентации

Слайд 1Лекция №3 по дисциплине «Объектно-ориентированное программирование» на тему: Константные объекты и функции.

Дружественные функции и классы

Лекция №3 по дисциплине «Объектно-ориентированное программирование» на тему:  Константные объекты и функции. Дружественные функции и классы

Слайд 2Доступ к элементам класса
Ключевые слова public и private называются

спецификаторами доступа к элементам класса.
Инкапсуляция в ООП – это сокрытие

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


Доступ к элементам класса Ключевые слова public и private называются спецификаторами доступа к элементам класса.Инкапсуляция в ООП

Слайд 3Интерфейс и реализация класса

Объявление класса называют интерфейсом класса, а

определения членов-функций – его реализацией

Члены-данные класса и члены-функции принадлежат

к области действия класса. Внутри области действия класса элементы класса допускают обращение просто по имени. Вне области действия класса на элементы класса можно ссылаться через имя объекта, ссылку или указатель на объект
Интерфейс и реализация класса Объявление класса называют интерфейсом класса, а определения членов-функций – его реализацией Члены-данные класса

Слайд 4Область действия функции

Переменные, объявленные в члене-функции, имеют область действия функции

– они известны только в этой функции.

Если в члене-функции

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

Доступ к скрытой переменной можно получить при помощи операции разрешения области действия ::

Область действия функцииПеременные, объявленные в члене-функции, имеют область действия функции – они известны только в этой функции.

Слайд 5Пример доступа к элементам класса

int main(){
Time t;
Time

*tptr=&t; // указатель на объект t.
Time &tref=t; // ссылка

на объект t
t.day=12;
t.print();
tref.day=17;
tref.print();
tptr->day=25;
tptr->print();
return 0;
}

Пример доступа к элементам класса int main(){  Time t;Time *tptr=&t; // указатель на объект t. Time

Слайд 6Отделение интерфейса от реализации

Отделение интерфейса класса от реализации – основополагающий

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

использовать этот класс, должен включать этот файл директивой include. Это – интерфейс класса

Определения членов-функций нужно помещать в отдельный исходный файл с тем же именем, что и заголовочный файл. Это – реализация класса.
Отделение интерфейса от реализацииОтделение интерфейса класса от реализации – основополагающий принцип ООП.Объявление класса нужно помещать в заголовочный

Слайд 7Константные объекты и функции
Константный объект – это объект, не

модифицируемый в программе
const Time t (23, 02, 2011);
Вызов членов-функций

от константных объектов разрешается, только если сама функция является константной
Объявление константной функции:
int Time::getDay() const {return day};
Определение с модификатором const члена-функции, которая изменяет элемент данных объекта, дает синтаксическую ошибку
константная функция может быть перегружена не-константной функцией

Константные объекты и функции Константный объект – это объект, не модифицируемый в программе		const Time t (23, 02,

Слайд 8Пример с константными объектами и функциями
#include
using std::cout;

class Time{
private:

int day, month, year;
public:
Time(int=0, int=0, int=0);
void setTime(int, int, int);
void setDay(int);
int getDay() const;
void print();
};




Пример с константными объектами и функциями #include using std::cout;    class Time{

Слайд 9Продолжение примера
Time:: Time(int d, int m, int y)
{

setTime(d, m, y);
}
void Time:: setTime(int d, int m, int y)


{
setDay(d);
month= (m>=1 && m<13) ? m : 0;
year= (y>=1900 && y<=2011) ? y : 0;
}
void Time::setDay(int d){
day= (d>=1 && d<32) ? d : 0; }
int Time::getDay() const {return day;}
void Time:: print()
{
cout<}
Продолжение примера Time:: Time(int d, int m, int y) { setTime(d, m, y);}void Time:: setTime(int d, int

Слайд 10Тестирующая функция
int main(){
Time t1(23,02,2011);
const Time

t2(08,03,2011);
t1.setDay(7);
t2.setDay(12);
int n=t1.getDay();
int m=t2.getDay();
return 0;
}

Тестирующая функция int main(){   Time t1(23,02,2011); const Time t2(08,03,2011);t1.setDay(7);t2.setDay(12);  int n=t1.getDay(); int m=t2.getDay();return 0;}

Слайд 11Вложенные классы
Вложенный класс - это класс, включающий в качестве

элементов объекты других классов
Пример:
class Clock {
private:
char* name;
Time t;

};
Пример конструктора

класса Clock.
Clock::Clock( char *n, int d, int m, int y):
Time(d,m,y)
{…}
Вложенные классы Вложенный класс - это класс, включающий в качестве элементов объекты других классов Пример:class Clock {private:char*

Слайд 12Дружественные структуры
Разновидности:
дружественные функции;
дружественные классы;
дружественные члены-функции.

Дружественные функции имеют доступ ко

всем элементам класса, в том числе закрытым, но сами членами

класса не являются
Дружественные структуры Разновидности:дружественные функции;дружественные классы;дружественные члены-функции.Дружественные функции имеют доступ ко всем элементам класса, в том числе закрытым,

Слайд 13Пример дружественной функции
#include
class Time{
private:
int day,

month, year;
public:
Time() {day=1; month=1; year=1970;}

void print() const {
cout<
friend bool w_year(Time &); // функция проверяет, //является ли год високосным
};

Пример дружественной функции #include class Time{private:   int day, month, year;public:  Time() {day=1; month=1; year=1970;}

Слайд 14Окончание примера
bool w_year(Time &t){
return !(t.year%4);
}

int main() {
Time t1;
bool w=w_year(t1);
cout

Окончание примераbool w_year(Time &t){return !(t.year%4);}int main() {Time t1;bool w=w_year(t1);cout

Слайд 15Пример функции, дружественной двум классам
class B;
class A {
friend

void f (A, B);
};
class B {
friend void f

(A, B);
};
void f(A a, B b) { }
Пример функции, дружественной двум классамclass B;class A {  friend void f (A, B);};class B {

Слайд 16Перегруженные функции можно также объявлять дружественными

Чтобы объявить дружественным целый

класс, нужно внутри описания класса ClassOne поместить объявление

friend class ClassTwo;

Понятие дружественности не симметрично.
Перегруженные функции можно также объявлять дружественными Чтобы объявить дружественным целый класс, нужно внутри описания класса ClassOne поместить

Обратная связь

Если не удалось найти и скачать доклад-презентацию, Вы можете заказать его на нашем сайте. Мы постараемся найти нужный Вам материал и отправим по электронной почте. Не стесняйтесь обращаться к нам, если у вас возникли вопросы или пожелания:

Email: Нажмите что бы посмотреть 

Что такое TheSlide.ru?

Это сайт презентации, докладов, проектов в PowerPoint. Здесь удобно  хранить и делиться своими презентациями с другими пользователями.


Для правообладателей

Яндекс.Метрика