Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
学ぶ チャレンジ:コンストラクタと属性 | イントロダクション
C++のクラスとオブジェクト
セクション 1.  10
single

single

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); }
タスク

スワイプしてコーディングを開始

シンプルな地図システムを構築することを想像してください。Location クラスを作成し、地図上の地点を名前と座標で表現します。あなたの課題は、コンストラクタと、他の地点までの距離を計算するメソッドを実装することです。

  1. コンストラクタの実装(3つのフィールドを初期化):
    • コンストラクタは3つのパラメータを受け取ります:名前用の std::string、x座標とy座標用の2つの double 値。
    • コンストラクタ内で、名前のパラメータをオブジェクトの 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実践的な練習のためにデスクトップに切り替える下記のオプションのいずれかを利用して、現在の場所から続行する
すべて明確でしたか?

どのように改善できますか?

フィードバックありがとうございます!

セクション 1.  10
single

single

AIに質問する

expand

AIに質問する

ChatGPT

何でも質問するか、提案された質問の1つを試してチャットを始めてください

some-alt