する質問をすることでしか得られない、回答やアドバイスがある。5352C++/Java/C#だけやっている分には、オーバーロードとオーバーライドの違いはわりとはっきりしています。オーバーロードはシグネチャ違いで同名メソッドを共存させること、オーバーライドは親クラスのメソッドに違う実装を持ち、実行時に呼ばれる実装がインスタンスのクラスによって決まるようにすること。C++/C#だと、演算子オーバーロードが出てきます。オーバーライドでなくオーバーロードなのか。それはこう説明できるでしょう、複数実装を持つ同名メソッドのうち、コンパイル時に解決されるのがオーバーロード、実行時に解決されるのがオーバーライドなのである、と。あたりを見たときに困ります。これらだと演算子も普通のメソッドであり、つまり実装の選択は実行時となります。これらの言語では演算子オーバーライドと言っているかというと、やはり演算子オーバーロードと呼ばれている。ここら辺でわからなくなりました。オーバーライドとオーバーロードの違いは、一体なんでしょうか?attachmentクリップ2気になる質問をクリップするクリップした質問は、後からいつでもマイページで確認できます。クリップした質問に回答があった際、通知やメールを受け取ることができます。自分も答えを知りたい質問者以外のユーザにも役立つ評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。質問の評価を上げたことを取り消します低評価-評価を下げられる数の上限に達しました評価を下げることができません1日5回まで評価を下げられます1日に1ユーザに対して2回まで評価を下げられます質問の評価を下げるteratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。コメントをしてください。送信する質問の評価を下げる機能の利用条件この機能を利用するためには、以下の事項を行う必要があります。件sort評価が高い順sort新着順sort古い順linkcheckベストアンサー+1こんにちは。C++/C#だと、演算子オーバーロードが出てきます。オーバーライドでなくオーバーロードなのか。それはこう説明できるでしょう、複数実装を持つ同名メソッドのうち、コンパイル時に解決されるのがオーバーロード、実行時に解決されるのがオーバーライドなのである、と。他の言語のことはよく分かりませんが、解釈が違っているように感じます。「演算子」と読んだ場合、グローバル演算子を指すことが多いと思います。グローバル演算子は単なるグローバル関数ですから、引数違いで別のグローパル演算子を定義することをオーバーロードと呼ぶのは妥当と思います。次に、例えばstd::stringのoperator+()をオーバーライドすることは可能ですので、その時はオーバーライドと呼ぶべきと思います。標準ライブラリのクラスを派生させて、更に演算子をオーバーライドするケースがあまり多くないので、「演算子をオーバーライドする」と言う表現をあまり見かけないということではないでしょうか?また、オーバーライドも2種類あります。仮想関数をオーバーライドする場合と通常の関数をオーバーライドする場合ですね。後者はコンパイル時に解決されます。前者を動的と言って良いのかどうかちょっと微妙に感じます。vtableはコンパイル時に生成されます。vtableへのポインタはコンストラクト時に設定されますが、その時は派生クラスがコンストラクトされています。std::string::operator+()は存在してませんでした。代わりに、virutalなしでもオーバーライドできることをstd::string::operator+=()で確認しました。2015でビルドと動作確認してます。評価が高い回答ほどページの上位に表示されます。remove低評価0回答の評価を下げる下記のような回答は推奨されていません。評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。17:41いくつかのことをごっちゃにしてしまっていたようです。C++にはグローバル関数形式のとメソッド形式の演算子オーバーロードがありましたね。C#のはグローバル関数(スタティックメソッド)形式のみ。グローバル関数形式のは、間違いなく「オーバーロード」です。+なら+という中置形式2変数関数に新たなシグネチャを追加しているわけですから。つければオーバーライドも可能となるのですね。ついてないからだめでした)。メソッド形式の演算子オーバーロードが話をややややこしくしていますが、オーバーロードとは単にシグネチャ違いの同名関数という理解はそんなに変えずに済むということですね。いくつかのことをごっちゃにしてしまっていたようです。C++にはグローバル関数形式のとメソッド形式の演算子オーバーロードがありましたね。C#のはグローバル関数(スタティックメソッド)形式のみ。グローバル関数形式のは、間違いなく「オーバーロード」です。+なら+という中置形式2変数関数に新たなシグネチャを追加しているわけですから。ついてないからだめでした)。メソッド形式の演算子オーバーロードが話をややややこしくしていますが、オーバーロードとは単にシグネチャ違いの同名関数という理解はそんなに変えずに済むということですね。ついてないからだめでした)。operator+はstd::stringになかったです。記憶だけで書いてしまってすいません。operator+=はあるので、こちらで確認しました。virtualはついてませんがオーバーライドできました。コードを回答文へ記載します。因みに、virualはオーバーライドのための条件ではないです。基底クラス型へのポインタから派生クラスのメンバ関数を呼ぶための条件です。メソッド形式の演算子オーバーロードが話をややややこしくしていますが、オーバーロードとは単にシグネチャ違いの同名関数という理解はそんなに変えずに済むということですね。ついてないからだめでした)。operator+はstd::stringになかったです。記憶だけで書いてしまってすいません。operator+=はあるので、こちらで確認しました。virtualはついてませんがオーバーライドできました。コードを回答文へ記載します。因みに、virualはオーバーライドのための条件ではないです。基底クラス型へのポインタから派生クラスのメンバ関数を呼ぶための条件です。メソッド形式の演算子オーバーロードが話をややややこしくしていますが、オーバーロードとは単にシグネチャ違いの同名関数という理解はそんなに変えずに済むということですね。キャンセル完了するlink+1私は単純にオーバーロードは多重定義、オーバーライドは上書き、と区別しています。C++の演算子オーバーロードは関数のオーバーロードそのものなので、用語としてはオーバーロードがふさわしいように思います。実際に演算子オーバーロードは既存の処理を上書きするという性質のものではないですし。これはC#でも同様ですね。コンパイル時かどうかというのはあまり関係ないように思います。上書きは、C++/C#においては、あるクラスの仮想メソッドを派生クラスで別の処理に置き換えるというケースしかないので、オーバーライドという用語が適用されるのはかなり限定的かと思います。評価が高い回答ほどページの上位に表示されます。remove低評価0回答の評価を下げる下記のような回答は推奨されていません。評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。commentコメント投稿link0多重定義できない言語でも「演算子オーバーロード」と呼ばれるのは、おそらく(C++などの他言語に影響された)俗称以外の何物でもないでしょう。少なくともRubyの世界では、シグネチャの違うメソッドによる「オーバーロード」自体が存在しないので、特段問題とはなっていません(マニュアルには「演算子オーバーライド」という文言も登場していますが)。PHPでは、マジックメソッドでいろんなメソッド名をまとめて受け取る機能を「オーバーロード」と呼んでいます。評価が高い回答ほどページの上位に表示されます。remove低評価0回答の評価を下げる下記のような回答は推奨されていません。評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。14:19「オーバーロード」でなく「演算子オーバーロード」が独立して意味を持ってしまっているという解釈、それもあるかなとは感じていました。「オーバーロード」でなく「演算子オーバーロード」が独立して意味を持ってしまっているという解釈、それもあるかなとは感じていました。評価が高い回答ほどページの上位に表示されます。remove低評価3回答の評価を下げる下記のような回答は推奨されていません。評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。16:21ええと、これらのURLリンクから、どのようなことをおっしゃりたいのでしょうか。ええと、これらのURLリンクから、どのようなことをおっしゃりたいのでしょうか。編集Javaに関してだけをぐぐっても解決しないでしょう。質問の背景と真意を理解していない回答でありノイズだと考え、マイナス評価しました。Googleは「生命、宇宙、すべての答え」くらいしか教えてくれない。Javaに関してだけをぐぐっても解決しないでしょう。質問の背景と真意を理解していない回答でありノイズだと考え、マイナス評価しました。Googleは「生命、宇宙、すべての答え」くらいしか教えてくれない。13:03ここも同じでしょ?ここの回答も結局グーグルに載るし。オーバーロードとオーバーライドの違いぐらい検索すれば出てくるだろ!ここはグーグルで検索しても出てこないことを質問するのがふつうじゃない??ここも同じでしょ?ここの回答も結局グーグルに載るし。17:13会話にならない。マイナス会話にならない。19:01「話にならない」はこっちのセリフだが、理解してる??筋通ってない。19:12ちゃんと質問読みなよ。