Завдання: Конструктор та Атрибути
Одне з основних призначень конструкторів — ініціалізація атрибутів класу. Наприклад, конструктор за замовчуванням може використовуватися для встановлення початкових значень. Наприклад:
main.cpp
1234567891011121314#include <iostream> class Person { public: Person() { name = "undefined"; } std::string name; }; int main() { Person person; std::cout << person.name; }
Якщо не вказати значення для атрибута name об'єкта, він буде встановлений у underfined за замовчуванням. Можна спробувати видалити цей конструктор, щоб побачити, які зміни відбудуться.
Ініціалізація атрибутів за допомогою конструктора
Як і функції, конструктори можуть приймати параметри, що дозволяє використовувати різні аргументи під час створення об'єкта. Також можна перевантажувати їх для обробки різної кількості аргументів.
main.cpp
123456789101112131415161718class 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, який представляє точку на карті з назвою та координатами. Ваше завдання — реалізувати конструктор і метод для обчислення відстані до іншого місця.
- Реалізуйте конструктор, який ініціалізує всі три поля:
- Конструктор повинен приймати три параметри:
std::stringдля назви та два значення типуdoubleдля координат x і y. - Усередині конструктора присвойте параметр назви полю
nameоб'єкта. - Присвойте параметр координати x полю
xоб'єкта. - Присвойте параметр координати y полю
yоб'єкта.
- Конструктор повинен приймати три параметри:
- Реалізуйте метод
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
Рішення
Дякуємо за ваш відгук!
single
Запитати АІ
Запитати АІ
Запитайте про що завгодно або спробуйте одне із запропонованих запитань, щоб почати наш чат
Can you explain what a constructor is in more detail?
What does it mean to overload a constructor?
Can you give an example of initializing attributes with a constructor?
Чудово!
Completion показник покращився до 3.13
Завдання: Конструктор та Атрибути
Свайпніть щоб показати меню
Одне з основних призначень конструкторів — ініціалізація атрибутів класу. Наприклад, конструктор за замовчуванням може використовуватися для встановлення початкових значень. Наприклад:
main.cpp
1234567891011121314#include <iostream> class Person { public: Person() { name = "undefined"; } std::string name; }; int main() { Person person; std::cout << person.name; }
Якщо не вказати значення для атрибута name об'єкта, він буде встановлений у underfined за замовчуванням. Можна спробувати видалити цей конструктор, щоб побачити, які зміни відбудуться.
Ініціалізація атрибутів за допомогою конструктора
Як і функції, конструктори можуть приймати параметри, що дозволяє використовувати різні аргументи під час створення об'єкта. Також можна перевантажувати їх для обробки різної кількості аргументів.
main.cpp
123456789101112131415161718class 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, який представляє точку на карті з назвою та координатами. Ваше завдання — реалізувати конструктор і метод для обчислення відстані до іншого місця.
- Реалізуйте конструктор, який ініціалізує всі три поля:
- Конструктор повинен приймати три параметри:
std::stringдля назви та два значення типуdoubleдля координат x і y. - Усередині конструктора присвойте параметр назви полю
nameоб'єкта. - Присвойте параметр координати x полю
xоб'єкта. - Присвойте параметр координати y полю
yоб'єкта.
- Конструктор повинен приймати три параметри:
- Реалізуйте метод
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
Рішення
Дякуємо за ваш відгук!
single