- •Int main () {
- •Int main () {
- •Int main () {
- •Int main (){
- •Int main () {
- •Int main () {
- •Int main () {
- •Int main () {
- •Int main () {
- •Int main () {
- •Итоговый тест №8.
- •Int main () {
- •Int main() {
- •Int main () {
- •Int main() {
- •Int main () {
- •Int main() {
- •Int main () {
- •Int main() {
- •Итоговый тест№9 Перегрузку операций.
- •Int main () {
- •Int main() {
- •Int main () {
- •Int main()
Int main() {
Point first;
Point second(2.0, 5.0);
first.print();
second.print();
return 0;
}
b) Теперь добавим метод distanceTo(), который будет принимать второй объект класса Point в качестве параметра и будет вычислять расстояние между двумя объектами. Учитывая две точки (a1, b1) и (a2, b2), расстояние между ними можно вычислить следующим образом: sqrt ((a1 - a2) * (a1 - a2) + (b1 - b2) * (b1 - b2)).
Следующая программа:
Int main () {
Point first;
Point second (2.0, 5.0);
first.print ();
second.print ();
std::cout << "Distance between two points: " <<
first.distanceTo (second) << '\n';
return 0;
}
Должна выдавать следующий результат:
Point (0, 0)
Point (2, 5)
Distance between two points: 5.38516
Ответ:
#include <iostream>
#include <math.h>
using namespace std;
class Point {
private:
double a_m, b_m;
public:
Point() {
a_m = 0.0;
b_m = 0.0;
}
Point(double a, double b) {
a_m = a;
b_m = b;
}
~Point() {};
void print() {
cout << "Point (" << a_m << "," << b_m << ")" << endl;
}
double distanceTo(Point& other) {
return sqrt((a_m - other.a_m) * (a_m - other.a_m) + (b_m - other.b_m) * (b_m - other.b_m));
}
};
Int main() {
Point first;
Point second(2.0, 5.0);
first.print();
second.print();
cout << "Distance between two points: " << first.distanceTo(second) << '\n';
return 0;
}
c) Измените функцию distanceTo () из метода класса в дружественную функцию, которая будет принимать два объекта класса Point в качестве параметров. Переименуйте эту функцию на distanceFrom ().
Следующая программа:
Int main () {
Point first;
Point second (2.0, 5.0);
first.print ();
second.print ();
std::cout << "Distance between two points: " << distanceFrom (first, second) << '\n';
return 0;
}
Должна выдавать следующий результат:
Point (0, 0)
Point (2, 5)
Distance between two points: 5.38516
Ответ:
#include <iostream>
#include <math.h>
using namespace std;
class Point {
friend double distanceFrom(Point& A, Point& B);
private:
double a_m, b_m;
public:
Point() {
a_m = 0.0;
b_m = 0.0;
}
Point(double a, double b) {
a_m = a;
b_m = b;
}
~Point() {};
void print() {
cout << "Point (" << a_m << "," << b_m << ")" << endl;
}
};
double distanceFrom(Point& A, Point& B) {
return sqrt((A.a_m - A.a_m) * (A.a_m - A.a_m) + (B.b_m - B.b_m) * (B.b_m - B.b_m));
}
Int main() {
Point first;
Point second(2.0, 5.0);
first.print();
second.print();
std::cout << "Distance between two points: " << distanceFrom(first, second) << '\n';
return 0;
}
Задание №2
Напишите деструктор для следующего класса:
#include <iostream>
class Welcome {
private:
char *m_data;
public:
Welcome () {
m_data = new char [14];
const char *init = "Hello, World!";
for (int i = 0; i < 14; ++i)
m_data [i] = init [i];
}
~Welcome () {
// Реализация деструктора
}
void print () const {
std::cout << m_data;
}
};
