Основы работы в С++

Методическое пособие - Компьютеры, программирование

Другие методички по предмету Компьютеры, программирование

в котором этот член определён, а также из любых методов его классов-наследников. Наследование по типу protected делает все public-члены родительского класса protected-членами класса-наследника (С++);(открытый член класса) - обращения к члену допускаются из любого кода. Наследование по типу public не меняет модификаторов родительского класса (С++);

) Что является элементами класса?

При использовании классов все элементы кода программы, такие как переменные, константы, методы, процедуры и функции, могут принадлежать (а во многих языках обязаны принадлежать) тому или иному классу. Сам класс в итоге определяется как список своих членов, а именно полей (свойств) и методов / функций / процедур. В зависимости от языка программирования к этому списку могут добавиться константы, атрибуты и внешние определения

) Как осуществляется доступ к элементам класса

Принято объявлять в классах специальные методы - так называемые set и get функции, с помощью которых можно манипулировать элементами данных. set-функции инициализируют элементы данных, get-функции позволяют просмотреть значения элементов данных. Доработаем класс CppStudio так, чтобы в нём можно было хранить дату в формате дд. мм. гг. Для изменения и просмотра даты реализуем соответственно set и get функции.

) Для чего используется указатель this

Указатель *this создается автоматически и указывает на объект, который вызывает метод

6) Что такое конструктор

В объектно-ориентированном программировании конструктор класса (от англ. constructor, иногда сокращают ctor) - специальный блок инструкций, вызываемый при создании объекта.

Конструктор схож с методом, но отличается от метода тем, что не имеет явным образом определённого типа возвращаемых данных, не наследуется, и обычно имеет различные правила для рассматриваемых модификаторов

7) Что такое деструктор

Дестру?ктор - специальный метод класса, служащий для деинициализации объекта (например освобождения памяти).

) Какие классы и функции называются дружественными

В C++ существует возможность организации более гибкой защиты. Здесь можно также объявлять функции, отдельные функции-члены классов и даже классы (в этом случае речь идёт о полном множестве функций-членов класса), которые получают доступ к защищённым и приватным членам данного класса. Что означает реализацию системы управления доступом принципу не допускать НИКОГО, КРОМЕ. Такие функции и классы называют дружественными функциями и классами

 

Лабораторная работа №2

Тема: Перегрузка функций и операторов

 

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

 

#includenamespace std;zel

{f;:() {f=0;}(int f) {this->f=f;}get_zel() {return f;}set_zel (int f) {this->f=f;}show() {cout<< F=<<f<<endl;}zel:operator ++(int a)

{a=a+a+a;

}zel:operator +(int a)

{a=a+3;

}zel:operator - (int a)

{int t;

=a-a-a;t;

}zel:operator - (int a)

{a=a-5;

}

};main()

{a;b;c;x;.set_zel(c);.set_zel(x);.show();.show();

++;<<c;<<c+<<endl;-;<<c;<<c-<<endl;(pause);

return 0;

}

 

Комплексное число - Complex. Класс должен содержать несколько конструкторов и операции для сложения, вычитания, умножения, деления, присваивания. Создать два вектора размерности n из комплексных координат. Передать их в функцию, которая выполняет сложение комплексных векторов.

#include

#include

#include Complex

{:real; // Действительная частьimage; // Мнимая часть:() {}; // Конструктор по умолчанию(double r) {real = r; image = 0;} // Конструктор(double r, double i) {real = r, image = i;} // Конструктор

~Complex() {} // Деструкторoperator+(Complex &); // Перегрузка оператора сложенияoperator - (Complex &); // Перегрузка оператора вычитанияoperator*(Complex &); // Перегрузка оператора умножения operator/(Complex &); // Перегрузка оператора деления

// Перегрузка функции-оператора << для вывода класса Complex

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

// Перегрузка функции-оператора >> для ввода класса Complex

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

};

// Перегрузка +Complex:operator+(Complex &fp1)

{.real = real + fp1.real;.image = image + fp1.image;fp1;

}

// Перегрузка -Complex:operator - (Complex &fp1)

{.real = real - fp1.real;.image = image - fp1.image;fp1;

}

// Перегрузка *Complex:operator*(Complex &fp1)

{i, j;= real * fp1.real - image * fp1.image;= real * fp1.image + fp1.real * image;.real = i;.image = j;fp1;

}

// Перегрузка /Complex:operator/(Complex &fp1)

{k, i, j;= fp1.real * fp1.real + fp1.image * fp1.image;= (real * fp1.real + image * fp1.image) / k;= (fp1.real * image - real * fp1.image) / k;.real = i;.image = j;fp1;

}

// Перегрузка оператора <<&operator<< (ostream &fo, Complex &fp)

{(fp.image < 0) fo << fp.real << +i ( << fp.image <<)\n;fo << fp.real << +i << fp.image << \n;fo;

}

// Перегрузка оператора >>&operator>>(istream &fi, Complex &fp)

>fp.real; fp.image;fi;

}main()

{

//clrscr();

// Комплексные числаc1, c2, c3, c4, c5;

// Ввод комплексных чисел>> c1;

cin >> c2;>> c3;>> c4;

cin >> c5;

// Вывод комплексных чисел<< \nc1 = << c1;

cout << c2 = << c2;<< c3 = << c3;<< c4 = << c4;<< c5 = << c5 << \n;

// cout << Модуль c1: << c1.abs() << \n\n;

// Вывод результатов операцийk;

K=c1+c2;<< c1 + c2 = << k;=c1-c2;<< c1 - c3 = << k;=c1*c2;<< c1 * c4 = << k;=c1/c2;<< c1 / c5 = << k;();}

 

Ко?/p>