最近DirectX9をやってます。
始める→挫折→C++をもう一度勉強→また始める
という状況で、だいたいのことは分かってきたのですが、
IDirect3D9というのがいまいち分かりません。
インターフェースというのは私の中では、「関数をたくさん定義して、継承させるためのもの」という適当な認識をしているのですが、
IDirect3D9インターフェースは、インスタンス化されていますし、これを継承したクラスは使いませんし、普通にメンバ関数を扱っています。
いったい、インターフェースとは何なのでしょうか?
また、IDirect3D9インターフェースは、何故インターフェース何でしょうか?
是非ご教授ください。
No.1ベストアンサー
- 回答日時:
Interfaceというのは、
こういう時にこの引数でこれを呼ぶと、こうなる。
他者との間で、呼出と応答のお約束を決めたものです。
(原義は、顔の間、界面という意味です)
そして、本来的なinterfaceは必ずしも継承とは関係ありません。
(継承のないC言語であっても関数宣言などはinterfaceの一部です)
IDirect3D9に限らず、interfaceを *使う際には* インタンス化/実体化が必要です。
DirectXのようなCOMのinterfaceは、通常 *提供する側が* 継承したインスタンスを提供するので、
使う側は、GUIDを指定するだけで、その具象クラスをあまり意識していないだけです。
中身を意識せず、呼び出して使えるのがinterfaceであって、
提供する側(ここではMicrosoft)は、interfaceのルールさえ守れば、
中身の実装を自由に変えられて、影響を与えないのがinterfaceの利点です。
(実装を公開しないので、こっそり?DirectX側のバグを直したりすることが可能です)
「受付担当」インターフェイスがあったとして、
適切な同じ回答をしてくれる限り、それが「事務員」クラスの「鈴木」インスタンスでも、
「人間」クラスの「田中」インスタンスでも、
「自動応答装置」クラスの「Answer01」でも、受付にお願いした方はそれを気にしない。
受付業務を行うクラスが受付担当インターフェイスを実現し、
そのクラスのインスタンスが実際の責務を果たせばよい。
インターフェイスを解したやり取りというのはそういうことです。
# 共通のインターフェイスがないと、人間にお願いする時と自動応答装置にお願いする時には手順が変わってしまうでしょう。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Java javaのクラスの分け方について質問です。 APIの内部用と外部用でクラスを分けたいのですがインター 2 2022/04/26 16:06
- ネットワーク プロトコルの階層化とインターフェースとの違い 2 2022/07/26 02:38
- Java オブジェクト指向プログラミングの実践本を紹介してください 3 2022/09/19 04:56
- ソフトウェア データ入力のインターフェースについて 2 2022/09/27 09:07
- スピーカー・コンポ・ステレオ インターフェースに繋ぐモニタースピーカーでおすすめのものがあれば教えてください 1 2022/11/17 23:05
- スピーカー・コンポ・ステレオ インターフェースに繋ぐモニタースピーカーでおすすめのものがあれば教えてください 1 2022/11/18 08:21
- スピーカー・コンポ・ステレオ インターフェースに繋ぐモニタースピーカーでおすすめのものがあれば教えてください 1 2022/11/18 07:19
- 作詞・作曲 ガレージバンドでmidiキーボードを使ってピアノを打ち込んでいると絶対音ずれします。 クオンタイズを 1 2022/07/30 06:07
- Gmail Googleメールのインターフェースがぐちゃぐちゃで意味がわかりません。 送信欄を見ても受信欄を見て 1 2022/04/21 19:05
- その他(コンピューター・テクノロジー) 外付けSSDにスマホのデータを書き込むのではなく、外付けSSDをスマホに接続した状態でスマホを使って 4 2023/07/18 19:32
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
小学1年生の子です。塾に行かせ...
-
Pythonでgif画像が上手く作れない
-
pythonで複数画像からgifを作る...
-
プログラミング
-
RTKPOSTのファイル生成について
-
vba クリップボードクリアにつ...
-
google formsを使ったタスク依...
-
windowsでテキストファイルの各...
-
スカラーのベクトル微分
-
正規表現で複数マッチ条件で悩...
-
このURLで広告を出しているのは...
-
Webサイト内に埋め込んだmp4動...
-
pythonにてseleniumを使うも、...
-
Google ColaboでGUI作成
-
HTMLソースが表示のページのも...
-
質問です。 sdカード内に、デー...
-
Selenium4でボタンをクリックで...
-
ExcelVBAでFormulaR1C1を列範囲...
-
pythonのプログラムについての...
-
プログラミング ソースコード
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
chatGPTで次々と質問をしていく...
-
昔のパソコン少年の武勇伝「店...
-
スカラーのベクトル微分
-
ハッシュテーブル(連想配列)が...
-
最新のプログラム言語を学ぶに...
-
pythonにてseleniumを使うも、...
-
Windowsのアプリ開発ってなんの...
-
vba クリップボードクリアにつ...
-
Google ColaboでGUI作成
-
sublimit textっていうエディタ...
-
フリーランスのエンジニアって...
-
ExcelVBAでFormulaR1C1を列範囲...
-
matplotlibで任意の角度の円弧...
-
そのまま使っただけなのに・・...
-
家庭のパソコンで Python の 環...
-
初心者powershellのPS1ファイル...
-
Webプログラムってネイティブア...
-
httpリクエストの送り元の特定
-
プログラミングで例えばゲーム...
-
rpa化する言語としてら何があり...
おすすめ情報