クラス実装ファイル

ウィキペディアから、無料の百科事典
ナビゲーションにジャンプ 検索にジャンプ

オブジェクト指向プログラミングではクラス実装ファイルは、クラスのメソッドの実装コードを含むためによく使用されますCやC++のようなプログラミング言語は、これらのメソッドのインターフェースと実装を分離するために、これらの実装ファイルを利用します。[1]

モチベーション

この構造を使用して、クラスとそのメンバーの宣言を含むクラス定義ファイルも作成されます。クラス定義が含まれていて、そのメソッドの実装ファイルが使用可能な場合、ユーザーはクラスオブジェクトをインスタンス化できます。この構造の目的は、実装コードを非表示に保つことですが、ユーザーがデザインを表示できるようにすることです。[2] [3]

ユーザーは、オブジェクトのパブリックインターフェイスを利用して、オブジェクトの作成を可能な限り簡単にし、クライアントコードがクラスの実装の不要な詳細でユーザーの気を散らさないようにします。[4] これにより、ユーザーはクラスを効果的に使用するために必要な情報を得ることができますが、コンパイルされたコードに損傷を与えることはありません。[5]

クラス実装ファイルの構造

実装ファイルは、C ++プログラミングでクラス定義を作成するときに使用され、実装からインターフェイスを分割します。ヘッダーファイルは、クラスが持つすべてのメンバー関数(メソッド)とデータメソッド(フィールド)を宣言します。[6] [7] [8]

実装ファイルには、ヘッダーファイルで宣言されたメソッドの実際の定義またはソースコードが含まれます。このファイルは、定義されたクラスの目的と、ファイルの作成者やファイルの作成日など、実際のファイルの作成に関する詳細を説明するコメントを提供するヘッダーブロックで開始できます。[9]ファイル内で宣言されたメソッドのいずれかによって使用されるC++標準 ライブラリのライブラリを含めることもできます。クラス実装ファイルには通常、関連するヘッダーファイルをインクルードする行があります(以下の例を参照)。

C++での例

例として、。というクラスがありExampleClassます。このC++ファイルのヘッダーファイルは「example_class.h」という名前になり、実装ファイルは「example_class.cc」という名前になります。[10] [11]

example_class.ccの構造の例は、次のようになります。

#include "example_class.h" 

ExampleClass :: ExampleClass ()=デフォルト;  

void ExampleClass :: AddSomething int k {   
   ..。
}

この例では、関数の実装は省略されていますが、関数はexample_class.hで次のように宣言する必要があります。 [12]

#include <文字列> 

クラス ExampleClass { 
 パブリック
  ExampleClass (); //コンストラクタ。void AddSomething int k );  
              

 プライベート
  std :: string name_ ; };                       

Objective-Cの例

クラス実装ファイルがどのように構造化されるかの別の例は、 iOSプログラミングで使用されるObjective-Cで見ることができます。[13] この例では、「ExampleClass」を使用します。これらの実装ファイルを使用する場合のC++とObjective-Cの顕著な違いは、ファイルの最後で使用される拡張子です。C++では.cpp [14] になり、Objective-Cでは.m[15]になりますが、どちらもヘッダーファイル に同じ.h拡張子を使用 します[16] [17]以下の例。

これは、Objective-CのExampleClass.hの例です

#import <UIKit / UIKit.h>

@interface  ExampleClass  :NSObject  {
    //インスタンス変数の宣言はここにあります
}
-  NSString *  名前;
@終わり

これは、Objective-Cのクラス実装ファイル Exampleclass.mの例です。

#import "ExampleClass.h"

@implementation  ExampleClass
-  NSString *  name { 
    @"…"を返す; 
}
@終わり

も参照してください

参照

  1. ^ アラングリフィス(2005)。「C++でのインターフェースと実装の分離」http://accu.org/index.php/journals/:ACCU _ 2013年5月7日取得 {{cite web}}:(ヘルプ外部リンク|location=
  2. ^ アラングリフィス(2005)。「C++でのインターフェースと実装の分離」http://accu.org/index.php/journals/:ACCU _ 2013年5月7日取得 {{cite web}}:(ヘルプ外部リンク|location=
  3. ^ Neuberg、Matt(2011年5月26日)。「4.3章ヘッダーファイルと実装ファイル」。iOS4のプログラミングO'Reilly Media、Inc. ISBN  978-1-4493-8843-0
  4. ^ アラングリフィス(2005)。「C++でのインターフェースと実装の分離」http://accu.org/index.php/journals/:ACCU _ 2013年5月7日取得 {{cite web}}:(ヘルプ外部リンク|location=
  5. ^ 「C++のすべきこととすべきでないこと」https://www.chromium.org/developers/coding-style/cpp-dos-and-donts:Chromiumプロジェクト2013年5月7日取得 {{cite web}}:(ヘルプ外部リンク|location=
  6. ^ 「C++クラスの紹介」http://pages.cs.wisc.edu/~hasti/cs368/CppTutorial/NOTES/ 2013年5月7日取得 {{cite web}}:(ヘルプ外部リンク|location=CS1 maint:場所(リンク
  7. ^ アラングリフィス(2005)。「C++でのインターフェースと実装の分離」http://accu.org/index.php/journals/:ACCU _ 2013年5月7日取得 {{cite web}}:(ヘルプ外部リンク|location=
  8. ^ Febil Chacko Thanikal(2009)。「.hファイルでテンプレートクラスを定義し、それを.cppファイルに実装する方法」http://www.codeproject.com/Articles/48575/How-to-define-a-template-class-in-ah-file-and-imp:CodeProject _ 2013年5月7日取得 {{cite web}}:(ヘルプ外部リンク|location=CS1 maint:場所(リンク
  9. ^ 「C++プログラミングの実装ファイル」http://www.itechtalk.com/:ITechTalk _ 2013年5月7日取得 {{cite web}}:(ヘルプ外部リンク|location=
  10. ^ 「C++クラスの紹介」http://pages.cs.wisc.edu/~hasti/cs368/CppTutorial/NOTES/CLASSES-INTRO.html 2013年5月7日取得 {{cite web}}:(ヘルプ外部リンク|location=CS1 maint:場所(リンク
  11. ^ Neuberg、Matt(2011年5月26日)。「4.3章ヘッダーファイルと実装ファイル」。iOS4のプログラミングO'Reilly Media、Inc. ISBN  978-1-4493-8843-0
  12. ^ 「C++クラスの紹介」http://pages.cs.wisc.edu/~hasti/cs368/CppTutorial/NOTES/CLASSES-INTRO.html 2013年5月7日取得 {{cite web}}:(ヘルプ外部リンク|location=CS1 maint:場所(リンク
  13. ^ Neuberg、Matt(2011年5月26日)。「4.3章ヘッダーファイルと実装ファイル」。iOS4のプログラミングO'Reilly Media、Inc. ISBN  978-1-4493-8843-0
  14. ^ 「C++クラスの紹介」http://pages.cs.wisc.edu/~hasti/cs368/CppTutorial/NOTES/ 2013年5月7日取得 {{cite web}}:(ヘルプ外部リンク|location=CS1 maint:場所(リンク
  15. ^ Neuberg、Matt(2011年5月26日)。「4.3章ヘッダーファイルと実装ファイル」。iOS4のプログラミングO'Reilly Media、Inc. ISBN  978-1-4493-8843-0
  16. ^ 「C++クラスの紹介」http://pages.cs.wisc.edu/~hasti/cs368/CppTutorial/NOTES/ 2013年5月7日取得 {{cite web}}:(ヘルプ外部リンク|location=CS1 maint:場所(リンク
  17. ^ Neuberg、Matt(2011年5月26日)。「4.3章ヘッダーファイルと実装ファイル」。iOS4のプログラミングO'Reilly Media、Inc. ISBN  978-1-4493-8843-0

外部リンク