навіть класи (в цьому випадку мова йде про повне безлічі функцій-членів класу), які отримують доступ до захищених і приватним членам даного класу. Що означає реалізацію системи управління доступом принципом В«не допускати НІКОГО, КРІМВ». Такі функції і класи називають дружніми функціями і класами
Лабораторна робота № 2
Тема: Перевантаження функцій і операторів
Створити клас цілих чисел. Визначити оператори В«+ +В» і В«+В», як методи класу, а "-" і "-" як дружні функції. Оператори повинні дозволяти здійснення операцій, як з змінними даного класу, так і з перемінними вбудованого цілого. br/>В
# include namespace std; zel
{f;: () {f = 0;} (int f) {this-> f = f;} get_zel () {return f;} set_zel (int f) {this- > f = f;} show () {cout <<В«F =В» <
{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; <<В«Vvedite av formateВ» <> c; x; <<В«Vvedite bvВ» << endl;>> x;. set_zel (c);. set_zel (x);. show ();. show ();
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 <
}
// Перевантаження оператора>> & operator>> (istream & fi, Complex & fp)
{<<В«vvedite deystvinui chasty:В»;>> fp.real; <<В«vvedite mnimui chasty:В»;>> fp.image; fi;
} main ()
{
// clrscr ();
// Комплексні чіслаc1, c2, c3, c4, c5;
// Введення комплексних чисел>> c1;
cin>> c2;>> c3;>> c4;
cin>> c5;
// Висновок комплексних чисел <<В« nc1 =В» <
cout <<В«c2 =В» <