Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Вивчайте Завдання: Конструктор та Атрибути | Конструктори та Деструктори
C++ ООП

bookЗавдання: Конструктор та Атрибути

Одне з основних призначень конструкторів — ініціалізація атрибутів класу. Наприклад, конструктор за замовчуванням може використовуватися для встановлення початкових значень. Наприклад:

main.cpp

main.cpp

copy
1234567891011121314
#include <iostream> class Person { public: Person() { name = "undefined"; } std::string name; }; int main() { Person person; std::cout << person.name; }

Якщо не вказати значення для атрибута name об'єкта, він буде встановлений у underfined за замовчуванням. Можна спробувати видалити цей конструктор, щоб побачити, які зміни відбудуться.

Ініціалізація атрибутів за допомогою конструктора

Як і функції, конструктори можуть приймати параметри, що дозволяє використовувати різні аргументи під час створення об'єкта. Також можна перевантажувати їх для обробки різної кількості аргументів.

main.cpp

main.cpp

copy
123456789101112131415161718
class Person { public: Person(std::string _name, std::string _surname, int _age) { name = _name; surname = _surname; age = _age; } std::string name; std::string surname; int age; }; int main() { Person person("Bob", "Song", 23); }
Завдання

Swipe to start coding

Уявіть, що ви створюєте просту систему картографування. Вам потрібно створити клас Location, який представляє точку на карті з назвою та координатами. Ваше завдання — реалізувати конструктор і метод для обчислення відстані до іншого місця.

  1. Реалізуйте конструктор, який ініціалізує всі три поля:
    • Конструктор повинен приймати три параметри: std::string для назви та два значення типу double для координат x і y.
    • Усередині конструктора присвойте параметр назви полю name об'єкта.
    • Присвойте параметр координати x полю x об'єкта.
    • Присвойте параметр координати y полю y об'єкта.
  2. Реалізуйте метод distanceTo, який приймає інший об'єкт Location як параметр:
    • Отримайте доступ до координат x і y як поточного об'єкта, так і іншого об'єкта.
    • Обчисліть різницю координат x: other.x - x.
    • Обчисліть різницю координат y: other.y - y.
    • Обчисліть відстань за формулою: sqrt(dx * dx + dy * dy).
    • Поверніть обчислену відстань як значення типу double.

Приклад

Location("Home", 0.0, 0.0) and Location("Office", 3.0, 4.0) -> 5.0
Location("Park", 1.0, 2.0) and Location("School", 4.0, 6.0) -> 5.0
Location("Cafe", -1.0, -1.0) and Location("Library", 2.0, 3.0) -> 5.0

Рішення

Все було зрозуміло?

Як ми можемо покращити це?

Дякуємо за ваш відгук!

Секція 2. Розділ 2
single

single

Запитати АІ

expand

Запитати АІ

ChatGPT

Запитайте про що завгодно або спробуйте одне із запропонованих запитань, щоб почати наш чат

close

bookЗавдання: Конструктор та Атрибути

Свайпніть щоб показати меню

Одне з основних призначень конструкторів — ініціалізація атрибутів класу. Наприклад, конструктор за замовчуванням може використовуватися для встановлення початкових значень. Наприклад:

main.cpp

main.cpp

copy
1234567891011121314
#include <iostream> class Person { public: Person() { name = "undefined"; } std::string name; }; int main() { Person person; std::cout << person.name; }

Якщо не вказати значення для атрибута name об'єкта, він буде встановлений у underfined за замовчуванням. Можна спробувати видалити цей конструктор, щоб побачити, які зміни відбудуться.

Ініціалізація атрибутів за допомогою конструктора

Як і функції, конструктори можуть приймати параметри, що дозволяє використовувати різні аргументи під час створення об'єкта. Також можна перевантажувати їх для обробки різної кількості аргументів.

main.cpp

main.cpp

copy
123456789101112131415161718
class Person { public: Person(std::string _name, std::string _surname, int _age) { name = _name; surname = _surname; age = _age; } std::string name; std::string surname; int age; }; int main() { Person person("Bob", "Song", 23); }
Завдання

Swipe to start coding

Уявіть, що ви створюєте просту систему картографування. Вам потрібно створити клас Location, який представляє точку на карті з назвою та координатами. Ваше завдання — реалізувати конструктор і метод для обчислення відстані до іншого місця.

  1. Реалізуйте конструктор, який ініціалізує всі три поля:
    • Конструктор повинен приймати три параметри: std::string для назви та два значення типу double для координат x і y.
    • Усередині конструктора присвойте параметр назви полю name об'єкта.
    • Присвойте параметр координати x полю x об'єкта.
    • Присвойте параметр координати y полю y об'єкта.
  2. Реалізуйте метод distanceTo, який приймає інший об'єкт Location як параметр:
    • Отримайте доступ до координат x і y як поточного об'єкта, так і іншого об'єкта.
    • Обчисліть різницю координат x: other.x - x.
    • Обчисліть різницю координат y: other.y - y.
    • Обчисліть відстань за формулою: sqrt(dx * dx + dy * dy).
    • Поверніть обчислену відстань як значення типу double.

Приклад

Location("Home", 0.0, 0.0) and Location("Office", 3.0, 4.0) -> 5.0
Location("Park", 1.0, 2.0) and Location("School", 4.0, 6.0) -> 5.0
Location("Cafe", -1.0, -1.0) and Location("Library", 2.0, 3.0) -> 5.0

Рішення

Switch to desktopПерейдіть на комп'ютер для реальної практикиПродовжуйте з того місця, де ви зупинились, використовуючи один з наведених нижче варіантів
Все було зрозуміло?

Як ми можемо покращити це?

Дякуємо за ваш відгук!

Секція 2. Розділ 2
single

single

some-alt