Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Объектно-ориентированное программирование.docx
Скачиваний:
1
Добавлен:
01.03.2025
Размер:
31.2 Кб
Скачать

Void set_a(int aa); //метод класса

A operator+(int aa){A temp; temp= this->a+aa; return temp;}; ПРИМЕР ПЕРЕГРУЗКИ И УКАЗАТЕЛЯ THIS

}

  1. Классы в динамическими полями.

Это такой же класс только с поля в нем динамические.

class A{private:Int *a; // поле класса

Public:A(int aa) {a=new int(aa); };//конструктор с параметрами-инициальзации

~A(){delete a}; //деструктор}

  1. Конструктор по умолчанию, копирования, инициализации

Конструктором по умолчанию для класса Х называется такой конструктор, который не принимает никаких аргументов: Х::Х(). class Account {public:// конструктор по умолчанию ...Account();

Конструктор копирования для класса Х это такой конструктор, который может быть вызван с одним единственным аргументом типа X: X::X(const X&) или X::(const X&, int = 0).

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

class A

{

private:

Int a; // поле класса

Public:

A() {};//конструктор по умолчанию

A(int aa) {a=aa; };//конструктор с параметрами-инициальзации

A(const A &aa){a=a.aa ;}; // конструктор копирования

~A(){a=0}; //деструктор

Void set_a(int aa); //метод класса

A operator+(int aa){A temp; temp= this->a+aa; return temp;}; ПРИМЕР ПЕРЕГРУЗКИ И УКАЗАТЕЛЯ THIS

}

  1. Перегрузка операций и функции друзья.

Функция друзья имеет доступ ко всем нестатическим полям и методам класса в котором находится через параметр-объект класса, которому она дружественна. Она должна быть объявлена в теле класса как friend. Например:class Matrix { friend Matrix Multiply(Matrix m1, Matrix m2);};

Matrix Multiply(Matrix m1, Matrix m2) {} Здесь функция Multiply может обращаться к любым полям и функциям-членам класса Matrix.

Перегрузка функций позволяет вам использовать одно и то же имя для нескольких функций с разными типами параметров.

Int min(int a, int b) {…}

Double min(double a, double b) {…}

  1. Статические поля и методы класса.

Статические поля существуют в одном экземпляре на всю программу (или, в более сложном варианте, — в одном экземпляре на процесс или на поток/нить). Обычные поля создаются по одной копии для каждого конкретного объекта — экземпляра класса.

Статическим называется метод, который существует в классе как в таковом, а не в отдельных его экземплярах. Как и в случае других статических членов, главное преимущество статических методов в том, что они расположены вне конкретных экземпляров класса, не засоряя глобальное пространство приложения.

class A

{static int i;

public: A(){i++} }

class A

{

private:

Int a; // поле класса

Public:

A() {};//конструктор по умолчанию

A(int aa) {a=aa; };//конструктор с параметрами-инициальзации

A(const A &aa){a=a.aa ;}; // конструктор копирования

~A(){a=0}; //деструктор

Void set_a(int aa); //метод класса

A operator+(int aa){A temp; temp= this->a+aa; return temp;}; ПРИМЕР ПЕРЕГРУЗКИ И УКАЗАТЕЛЯ THIS

}

  1. Операция как функция. Цель перегрузки операций.

Операция — это та же функция, но записываемая особым образом. Операции-функции можно вызывать непосредственно, хотя обычно они вызываются косвенно, при использовании перегруженных операций:c3 = c1.operator + (c2); // то же, что c3 = c1 + c2.В отличие от new и delete, которые имеют свои собственные правила, операция-функция должна быть либо нестатической функцией-компонентом, либо иметь как минимум один аргумент типа класса. Операций-функции =, (), [] и -> должны являться нестатическими функциями-компонентами.

Перегрузка оператора состоит в изменении смысла оператора (например, оператора плюс (+), который обычно в C++ используется для сложения) при использовании его с определенным классом.

  1. Наследование. Это процесс, посредством которого один объект может приобретать свойства другого. Точнее, объект может наследовать основные свойства другого объекта и добавлять к ним черты, характерные только для него. Наследование является важным, поскольку оно позволяет поддерживать концепцию иерархии классов.

Class A{…..}

Class B: public A {…...}

Область видимости предка : предок видит только своё тело.

  1. Наследование. Это процесс, посредством которого один объект может приобретать свойства другого. Точнее, объект может наследовать основные свойства другого объекта и добавлять к ним черты, характерные только для него. Наследование является важным, поскольку оно позволяет поддерживать концепцию иерархии классов.

Class A{…..}

Class B: public A {…...}

Область видимости предка : предок видит только своё тело.