Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Книга C++.doc
Скачиваний:
24
Добавлен:
10.11.2019
Размер:
2.48 Mб
Скачать

Класс вектор. Часть1.

Ну, а теперь практика! Вашему вниманию предлагается проект, состоящий из трех файлов, и показывающий практическое применение перегрузки операторов. Будьте внимательны при разборе задач. Как всегда, проект снабжен подробнейшими комментариями. Начнем...

Заголовочный файл (интерфейс класса).

// Предотвращение повторной компиляции кода

// с помощью директив условной компиляции

#if !defined VECTOR_H

#define VECTOR_H

class Vector

{

double *vect; // Вектор

int size; // Размерность вектора

public:

Vector(); // Конструктор по умолчанию

explicit Vector(int); // Конструктор, позволяющий задавать

// размерность вектора, но не являющийся

// конструктором преобразования

Vector(const double*, int); // Конструктор, позволяющий

// проинициализировать вектор с помощью

// существующего массива

Vector(const Vector&); // Конструктор копирования

~Vector(); // Деструктор

double operator ! (); // Функция, вычисляющая длину вектора

Vector& operator ++ (); // Увеличение всех компонент вектора

// на единицу (префикс)

Vector operator ++ (int); // Увеличение всех компонент вектора

// на единицу (постфикс)

Vector& operator -- (); // Уменьшение всех компонент вектора

// на единицу (префикс)

Vector operator -- (int); // Уменьшение всех компонент вектора

// на единицу (постфикс)

Vector& operator = (const Vector&); // Перегруженный оператор присваивания

double& operator [] (int); // Перегруженный оператор индексации

Vector& operator + (); // Перегруженный оператор + (унарный)

Vector operator - (); // Перегруженный оператор - (унарный)

Vector operator + (const Vector&); // Сложение двух векторов

Vector operator + (double); // Сложение вектора с числом

Vector& operator += (const Vector&);// Перегруженный оператор += для

// сложения двух векторов

Vector& operator += (double); // Перегруженный оператор += для

// сложения вектора с числом

Vector operator - (const Vector&); // Вычитание двух векторов

Vector operator - (double); // Вычитание числа из вектора

Vector& operator -= (const Vector&);// Перегруженный оператор -= для

// вычитания двух векторов

Vector& operator -= (double); // Перегруженный оператор -= для

// вычитания числа из вектора

double operator * (const Vector&); // Умножение векторов

Vector operator * (double); // Умножение вектора на число

Vector& operator *= (double); // Перегруженный оператор *= для

// умножения вектора на число

// Ввод вектора с клавиатуры

friend istream& operator >> (istream&, Vector&);

// Вывод вектора на экран

friend ostream& operator << (ostream&, Vector&);

int GetSize(); // Функция возвращает размерность вектора

};

#endif