web-dev-qa-db-ja.com

C ++の「メソッド」(「メンバー関数」と対比)について話すのはどの程度間違っていますか?

I 理解 C++仕様によると、「メソッド」などは存在せず、一部の(ほとんどの場合は?)C++プログラマーは、「メソッド」をJava主義と見なしています。一方で、 C++フォーラム でも、人々はけいれんせずにメソッドについて話しているようです。この用語に関する既知の規則または一般的な慣行を探しています。

C++とJavaバージョンの両方を持つAPIをドキュメント化しています。開発者は実際には、おそらく移植とテストの便宜のために、クラスとメソッド/メンバー関数の名前を2つの間で同じに保ちました。このうち、これらのAPIについて文書化する必要があるものの一部は、言語の選択の「上」にあります。一般的にについて話せる必要があります FoosとBars、それらのbaz()とmumble()...メソッドとは?

メソッドについて話すと、Java=プログラマーはそれを自然だと考え、C++プログラマーはおそらく理解するだろうが、正しくないと考える人もいるでしょう。私の質問は、これはどれほどひどいことか実際に?C++固有の関数とは対照的に、C++メンバー関数は従来の「一般的なOOP」コンテキストでどのように話されますか?メンバーについて話すより良い方法はありますか?どちらの言語でも正しくない方法で機能しますか?(「メンバー関数」は少し冗長です)

これは世論調査ではありません。 実際の規則または一般的な慣習があるかどうかを判断しようとしていますこの問題に対処します。

私は この質問 を知っていますが、それは一般的にOOPについてであり、特定の言語について質問しません。

21
Monica Cellio

ドキュメントの紹介部分に(質問で行ったように)説明を含めてみませんか。 a 規約セクション?次に、ドキュメントで使用されている「メソッド」という用語は、メソッド(Java)、メンバー関数(C++)などの一般的な意味で使用されていることを説明できます。ドキュメントはすべての実装に適用されるためです。

11
sceaj

まあ、あなたはそれのために実行されるつもりはありません。

C++の世界での不満は、あからさまな正しさの1つではなく、あいまいさの1つです。非常に 荒野にはさまざまな種類の「メソッド」があります 話しているドメインによって異なりますが、多くの場合、後で誤解を避けるために標準的な用語を使用することを好みます。つまり、「静的/ [非静的] [純粋]仮想/ [非仮想]メンバー/ [無料]関数」です。

代わりにドキュメントに「メソッド」と書いた場合、一部のC++プログラマーは、あなたが話していることが本当に明確ではない、またはthisC++規約、他に何が欠けていますか?

しかし、私自身、これが事であるとさえ知らない何百万人ものプロのC++プログラマーがいると確信しています。それは大昔の世界です。

あなたはそのために実行されるつもりはありません。

Eiffelはそれらを呼び出しますルーチンまたは機能、C++はそれらを呼び出しますメンバー関数、および(ほぼ)他のすべてのOO = C++がそれらを呼び出す前と後の両方で、計算の歴史全体でこれまでに作成された言語メソッドなので、後者の用語は一般的にC++(およびEiffel)プログラマーでも理解できないはずです本当に Simula、Smalltalk、Self、Objective-C、Newspeak、Java、C#、VB.NET、PHP、Python、Ruby、ECMAScript/JavaScript、Scala、CoffeeScript、…について聞いたことがない

3
Jörg W Mittag