Основы работы в С++
Методическое пособие - Компьютеры, программирование
Другие методички по предмету Компьютеры, программирование
в котором этот член определён, а также из любых методов его классов-наследников. Наследование по типу 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>