「クラス名::関数名()」という記述方法

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
nbem

「クラス名::関数名()」という記述方法

#1

投稿記事 by nbem » 10年前

こんばんは。
直接プログラムに関わらない&C言語に限った話ではないので、ここで質問して良いものか迷ったのですが、教えていただいてもよろしいでしょうか。

ドキュメントや技術系のブログ等で、あるクラスに属する関数の説明をする時などに、引数の有無に関わらず
「クラス名::関数名() を使用して~」
というような表記がなされているのをよく見かけます。
クラス名と関数名をダブルコロンで区切り、引数が無いかのように丸括弧を付けるというものです。

C++の場合は「::」はスコープ解決演算子ということで納得できますが、スコープ解決演算子のない他の言語の場合でもこの書き方が使われることがしばしばあります。
例 : PShape::addChild() \ Language (API) \ Processing 2+ (分かりにくいですがページの<title>です。)

何かプログラミング界の慣例的なものがあるのでしょうか?

もちろん関数を呼び出すときのようにドットで区切られていることも見かけます。
例 : ActionScript3.0 プロフェッショナルガイド - 野中文雄 - Google ブックス

また、最後の丸括弧が書かれていないこともあったりします。
例 : ContentControl.AddChild メソッド (System.Windows.Controls)

今後ブログ等を書いていく上で参考にしたいのですが、どのようなスタイルが一般的でしょうか?

よろしくお願いいたします。

アバター
h2so5
副管理人
記事: 2212
登録日時: 13年前
住所: 東京
連絡を取る:

Re: 「クラス名::関数名()」という記述方法

#2

投稿記事 by h2so5 » 10年前

一般的には区切りには :: か . か # がよく利用されます。
カッコを書くのはメソッドであることを明示したい場合です。

どの区切りが好んで使われるかは言語によって異なるので、公式のドキュメントなどを参考にするとよいと思います。PHPは :: でPyhtonだと . ですね。
Rubyなんかだと メソッドは # でクラスメソッドは . がかなり広く使われているので :: などを使うとさすがに違和感があります。

nbem

Re: 「クラス名::関数名()」という記述方法

#3

投稿記事 by nbem » 10年前

ありがとうございます。
h2so5 さんが書きました:カッコを書くのはメソッドであることを明示したい場合です。
例に挙げた「ContentControl.AddChild メソッド」のように、メソッド・関数であることが分かる場合は括弧が不要ということですね。
納得です!


少しですが他の言語での区切りついて、公式等のドキュメントをざっと調べてみたので念のため残しておきます。
  • C++ (MSDN) 「クラス名::関数名」
  • C# (MSDN) 「クラス名.メソッド名」
  • VB (MSDN) 「クラス名.メソッド名」
  • Objective-C (Apple Developer) 「+クラスメソッド名」, 「-インスタンスメソッド名」 (クラス名と繋がれていませんでした)
  • Java (javadoc) 「クラス名#メソッド名」
  • JavaScript (Mozilla Developer Network) 「オブジェクト名.関数名」
  • ActionScript (Adobe) 「クラス名.関数名」
  • Perl (公式) (クラス名と繋がれていませんでした)
  • Processing (公式) 「クラス名::メソッド名」
こういう記号の類、Googleでヒット数比較できないのが惜しいです。
ドキュメントのページタイトルでクラス名と繋がれて表記されていなかったものは、文章中をじっくり探していこうと思います。

ありがとうございました。

閉鎖

“C言語何でも質問掲示板” へ戻る