• ベストアンサー

関数とメソッドの違い

nitscapeの回答

  • nitscape
  • ベストアンサー率30% (275/909)
回答No.7

色々な回答があり情報が錯綜していますが。。。「関数=メソッド」と考えていいと思います。 まずC++の言語仕様には「メソッド」はないと思います(私自身仕様を把握しているわけではないので自信はありません、ないと思います)。 そのためC++(の仕様)において「メソッドと関数の違いは?」という質問への正確な回答はないと思います。 とは言うもののC++に関しても様々な場面で「メソッド」という言葉が使われています。 Visual C++で「メソッド」という言葉が使われている場面もあります。COM(ActiveX)で外部から操作できる関数を「メソッド」と呼びます(同じように外部から参照や操作できる変数は"プロパティ"と呼びます)。これはマイクロソフトなどが使っているC++での「メソッド」という言葉です。 またC++以外の言語を使っていて新しくC++を始めた人などは「メソッド=関数」という意味合いで使っていることもあります。また「クラスのメンバー関数=メソッド」として扱っている人もいます。これらは多くの場合上で述べたマイクロソフトの"メソッド"という言葉とは違う意味で使っています。 つまり「メソッド」という言葉はきちんとした定義がない(?)ためにその言葉を使っている人によって意味合いが違っています。「メソッド」という言葉に出会ったらその時々でその意味を判断する必要があると思います。しかしどの場合にも"メソッド"が"関数"の1種であることには変わりはないので「メソッド=関数」と考えていいと思います。

PVOID
質問者

お礼

ご返答ありがとうございます。 私としてはクラスのメンバ関数がメソッドの事で、 メンバ関数と言う言い回しは、C/C++の方言だと考えていたのですが、 改めて調べ直すと、他の方々のご返答のように、 人によってまちまちなので、何が正しいのか確信がもてなくなりました。 多くの方々から、ご返答を頂けましてありがたいのですが、 結局のところ、どなたのご意見が正しいのでしょうか。

関連するQ&A

  • 関数とメソッドの違い

    Pythonで 関数とメソッドの違いはなんですか? 関数の()かっこのなかは引数ですよね? では、 メソッドの()かっこのなかはなんとよぶんでしょうか?

  • 「クラス関数」「メンバ関数」「メソッド」の違いを教えてください。

    「クラス関数」「メンバ関数」「メソッド」の違いを教えてください。 あるサイトに、「クラス関数」=「メンバ関数」と書かれていました。 「メンバ関数」=「メソッド」だと思っているのですが、 そうすると、「クラス関数」=「メンバ関数」=「メソッド」という認識で間違いないでしょうか?

    • ベストアンサー
    • PHP
  • 関数とメソッドって違うものですか?(JAVA)

    現在0からJAVAを勉強していますが、関数とメソッドの違いがわかりません。 過去ログにC/C++カテゴリーで同様の質問がありましたが高度なんだか、言語が違うからなのかわかりませんでした。 関数とメソッドってどう区別できるのでしょうか? (”インスタンス.”の後ろには関数もメソッドも来ることができますよね?) (かっこも後ろについていますが、あれの意味もわかりません)

  • 「static宣言されているメンバ関数」は、「インスタンスメソッド」な

    「static宣言されているメンバ関数」は、「インスタンスメソッド」なのでしょうか? それとも、「クラスメソッド」なのでしょうか? 先日、下記内容で質問して、その時は分かったつもりだったのですが、 やっぱり分かってなかったようなので、教えてください。 ▽「クラス関数」「メンバ関数」「メソッド」の違いを教えてください。   http://okwave.jp/qa/q5858806.html 例) ▽前提 ・Aクラスのインスタンスa ・static宣言されたpublicメソッド「static_public_method」 ・static宣言されていないpublicメソッド「public_method」 ▽メンバ関数呼び出し ・$a->static_public_method() ・A::static_public_method() ・A::public_method() このとき、「$a->static_public_method()」は、インスタンス経由でアクセスすることになるので、 「インスタンスメソッド」になるのでしょうか。それとも、static(静的)宣言しているので、「クラスメソッド」になるのでしょうか? また、「A::static_public_method()」や、「A::public_method()」は、どちらになるのでしょうか? ※現在、頭の中がこんがらがっているのは、下記3点です。どれかひとつでも構わないので、分かりやすい考え方等あれば、ぜひ教えてください。 ・「static宣言したメンバ関数」は、「インスタンスメソッド」? 「クラスメソッド」? ・「スタティック」宣言してるのに、メンバ関数へ、「->(アロー演算子)」(オブジェクト経由)でアクセスできる理由 ・「A::static_public_method()」と「A::public_method()」の違い

    • ベストアンサー
    • PHP
  • uasort()でクラスのメソッドは呼べますか?

    2次元連想配列の指定項目をソートするのに、uasort()を使いたいのですが、 uasort()で指定する関数に任意の引数は渡せず、固定の項目しかソートできません。 uasort($rensouArray,"comparar"); 関数ではなくクラスのメソッドが指定できば引数を渡せなくてもクラスのプロパティで渡せると思いましたが、 以下の書き方ではクラスのメソッドは呼べませんでした。 uasort($rensouArray,$this->$comparar()); http://jp.php.net/manual/ja/function.uasort.php の注意書きで、関数名の代わりに、オブジェクトへのリファレンスを格納した配列とメソッド名を指定することも出来ます。とありますが、書き方がわからず困っています。

    • 締切済み
    • PHP
  • オフィス2010 今まで関数だったのがメソッドに

    オフィス2003からオフィス2010にしたのですが vbaのオブジェクトブラウザを見ていると、今までヘルプには関数として書かれていたのもが メソッドになってるのですが、変わったのですか? たとえば、WorksheetFunctionクラスのCountなんて、もろ関数だと思うのですが、 F1を押してヘルプを見ると「WorksheetFunction.Count メソッド」となっています。 関数とメソッドは同じ意味なのでしょうか?

  • staticメソッドにするかどうかの判断

    staticメソッドの使いどころについて質問させてください。 まず、メソッドの内部で、そのメソッドが定義されているクラスのイ ンスタンス変数を使用している場合は、そのメソッドはインスタンス に依存するので、インスタンスメソッドにしかできないのはわかり ます。疑問なのは、「じゃあこのメソッド内でインスタンス変数を使 わないで引数で渡せるように作れば、インスタンスに依存しないの でstaticにしていいの?」(※)ということです。 さらにこうも思います。 なんとなくですが、※のようなことをしたらオブジェクト指向の意味 がない気がします。理由ははっきりわかりません。ほんとになんとなく です。(奇跡的にあたっていたとしても、理由を教えて下さいm(_ _)m) そして、さらに混乱するのが、ユーティリティの関数などでstaticメ ソッドになっているのを見ました。この場合はどうしてメソッドの引 数を指定するようにしていて、クラスのインスタンス変数を使うこと はしないのか。 以上、大変下手な文章ですが、混乱しているポイントが伝わったでし ょうか? よろしくお願いします。

  • 文字列の数字部分を取り出す関数・メソッド

    こんにちは。 ある文字列から、数値部分を取り出す関数やメソッドは存在するのでしょうか? たとえば、  引数:"abc123"→戻り値:123  引数:"a1b2c3"→戻り値:1 ※はじめに見つかった数値 という感じです。 無いのであれば、自作しようと考えているのですが…。

  • javaのメソッドの引数で、クラスの配列を指定する

    javaのメソッドの引数で、クラスの配列を指定する事は可能なのでしょうか? 受け取るメソッドでは引数の所に何と書けば良いのでしょうか? 教えてください!

    • ベストアンサー
    • Java
  • javaのメソッド呼び出し

    javaで質問があります。メソッドを呼び出すとき、 クラス.メソッド(引数)だと思いますが、 「.」が2つあるものがあります。 どういったものでしょうか? あるプログラムに Code.PerComFlag.ReCom.equals(atmlogDTO.getatmComFlg()) のがありました。 また、javaの本に System.out.println(・・・) という記述もあります。 よろしくお願いします。

    • ベストアンサー
    • Java