多重定義の例とは? わかりやすく解説

多重定義の例

出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2021/12/09 03:43 UTC 版)

多重定義」の記事における「多重定義の例」の解説

C++による多重定義: // (1-1): 引数の数の違いによる多重定義int Function(void);int Function( int value );int Function( int value0, int value1 );// (2): 引数修飾子違いによる多重定義int Function( int *value );int Function( int const *value );int Function( int *const *value );int Function( int *const *const *value );// (3): 引数の型の違いによる多重定義int Function( char value );int Function( std::complex< double> const &value );int Function( ... ); // ※1template< class Type> int Function( Type const &value ); // ※2struct Example{ // (1-2): 引数の型の違いによる多重定義(コンストラクター版) Example(void); Example( int value ); // (4): メンバー関数修飾子違いによる多重定義 int Function(void); int Function(void) const; // (1-3): 引数の型の違いによる多重定義(メンバー関数版) int Function( int value ); // (5): 戻り値の型の違いによる多重定義 operator bool (void) const; operator int (void) const;}; 基本的には「(1)引数の数」と「(2)修飾子」「(3)型」が異なっていれば関数に同じ名前を付けられるようになっているまた、大域関数可能な多重定義メンバー関数全て可能である。メンバー関数は更に「(4)修飾子違い」による多重定義変換演算子用いた時に限り可能な(5)戻り値の型の違い」による多重定義可能になっている。JavaC#などC++以外の言語では(1)(3)範囲とどまっている事が多い。C++で特に特徴的なのは※1省略子と※2テンプレート関数多重定義できる点である。省略子を引数にとる関数あらゆる引数受け付け関数である。引数の型や数を無視する反面関数内部では一切引数参照することができないテンプレート関数int等明示的に型を書いた関数より選択される優先度低く省略子を用いた関数は更に低い。この特性利用して同じ扱い処理できる型はテンプレート関数で処理、特別扱い必要なであれば明示的に型を書いた関数で処理、引数の数が異り多重定義した関数群では対処しようがない引数省略子を用いた関数使ってもしない既定の処理をさせるようにすることができる。 FORTRANによる多重定義: module Example implicit none ! Function0, Function1をFunctionとして定義。FORTRAN予約語はなくFunction予約語ではない。 interface Function module procedure Function0, Function1 end interface Functioncontains function Function0( value1 ) result( value0 ) !省略 end function Function0 function Function1( value1, value2 ) result( value0 ) !省略 end function Function1end module Example 特徴的なのは関数の定義としては多重定義認めないものの呼び出し方法として多重定義認めている点である。呼び出し時の名前と定義の名前は別物であるため混乱の原因なるだけではあるが全く別の名前をつける事も可能になっている。

※この「多重定義の例」の解説は、「多重定義」の解説の一部です。
「多重定義の例」を含む「多重定義」の記事については、「多重定義」の概要を参照ください。

ウィキペディア小見出し辞書の「多重定義の例」の項目はプログラムで機械的に意味や本文を生成しているため、不適切な項目が含まれていることもあります。ご了承くださいませ。 お問い合わせ



英和和英テキスト翻訳>> Weblio翻訳
英語⇒日本語日本語⇒英語
  

辞書ショートカット

すべての辞書の索引

「多重定義の例」の関連用語

多重定義の例のお隣キーワード
検索ランキング

   

英語⇒日本語
日本語⇒英語
   



多重定義の例のページの著作権
Weblio 辞書 情報提供元は 参加元一覧 にて確認できます。

   
ウィキペディアウィキペディア
Text is available under GNU Free Documentation License (GFDL).
Weblio辞書に掲載されている「ウィキペディア小見出し辞書」の記事は、Wikipediaの多重定義 (改訂履歴)の記事を複製、再配布したものにあたり、GNU Free Documentation Licenseというライセンスの下で提供されています。

©2024 GRAS Group, Inc.RSS