45078


Design a class that stores a mathematical set of integers called MyClass . You
may assume that the set will never have more than 100 elements.

• A default constructor that initializes a set to the empty set.  
• Overload the "^" operator to implement the set membership. Returns true if
an  
element is in the set.  
• Overload the "+" operator to add an element to the set. Return the original
set with  
the new element added.  
• Overload the "+" operator to implement the union of two sets. Returns a new
set  
that contains all the elements of the both sets.  
• Overload the "<<" operator to print the set (in the format {1, 2, 3, 4})

こういう課題が出たのですがOverloadが何かということと何をすればいいのかが分かりません。  
問題はまだ続くのですがここまでの問題を解説の解説をしてもらえると助かります。よろしくお願いいたします。


CC BY-SA 4.0
2018-06-26T04:48:58.373
45077
2018-06-29T04:37:58.553
2018-06-29T04:37:58.553
question
c++
クラスとオーバーロードについての質問


C++言語だとすると、この場合の「Overload」は「演算子のオーバーロード」のことを指すと思われます。当該クラスを記述し、各演算子を実装しろということではないでしょうか。これらを検索キーワードにすれば容易に実装例がみつかると思います。


CC BY-SA 4.0
2018-06-26T04:59:05.040
45078
2018-06-26T04:59:05.040
3793
45077
answer


> • Overload the "^" operator to implement the set membership. Returns true if
> an  
>  element is in the set.

(直訳) 演算子 "^" をオーバーロードして、「集合に属す」を実装せよ。  
対象が集合に属する場合に、trueを返すものとする。

という訳で、ビット排他的論理和(bit exclusive-OR)の演算子 "^"
をオーバーロードして、対象が集合に属する場合に、trueを返すようにすればOK。

集合 + 対象、 集合 + 集合、 <<（印刷）も同様。


CC BY-SA 4.0
2018-06-26T05:15:49.703
45080
2018-06-26T05:15:49.703
217
45077
answer


和訳です:

> 整数の (数学的な) 集合を保持するようなクラス MyClass を設計せよ。ただし、集合が 100 個より多い要素を持つことは無いと仮定してよい。
>
>   * デフォルトコンストラクタは集合を空集合に初期化するものとする。
>   * "^" 演算子をオーバーロードして、集合のメンバーシップ関係を実装せよ。つまり、もしその要素がその集合に属しているのであれば真を返すようにせよ。
>   * "+" 演算子をオーバーロードして、集合に要素を追加できるようにせよ。つまり、元の集合に新しい要素がつけ加えられたものを返すようにせよ。
>   * "+" 演算子をオーバーロードして、2つの集合の和集合演算を実装せよ。つまり、両方の集合の要素全てを含む新しい集合を返すようにせよ。
>   * "<<" 演算子をオーバーロードして、集合を表示するようにせよ。{1, 2, 3, 4} のような書式で良い。
>

ここでいう「オーバーロード」とは、Wikipedia
で[「多重定義」](https://ja.wikipedia.org/wiki/%E5%A4%9A%E9%87%8D%E5%AE%9A%E7%BE%A9)という記事になっているものです。簡単に言うと、C++
では違う型の引数を持つ関数たちを同じ識別子で一気に定義することができるのです。詳しい解説は入門書に譲るとして、ここで言われているのは、自分で定義したクラス
MyClass に対して「オーバーロード」の機能を使いつつ種々の演算子を実装せよ、ということです。


CC BY-SA 4.0
2018-06-26T05:24:49.940
45082
2018-06-26T05:28:32.850
2018-06-26T05:28:32.850
19110
19110
45077
answer