- ベストアンサー
ラッパーって何なんでしょう・・・?
C++を勉強し始めたのですが、何とも難しい言葉が多くて、書いてあることが本当に理解できません。 ラッパーって? ハンドルって?? と、次から次へと理解不能な言葉が・・・ 読んでいるのは、C++Builderの開発者ガイドと、プログラミング言語C++の本です。 具体的なイメージが浮かばず、概念自体もピンときません。 わかりやすい本などあったら教えてください。 また、とりあえずラッパーとハンドルがどうしても気になるので、この2つの意味教えてください!! よろしくお願いします。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
- ベストアンサー
ラッパーは、wrapper で包み込むものの意味です。 wrap ラップはサランラップのラップですね。 wrappingラッピングといえば、プレゼントを包むやつですね。 つまり、たとえばある関数を使いたいと思ったとします。 しかし、その関数を呼び出すには、いろんな手続きをしないといけない、また呼ぶときに渡す引数をたくさん設定しなければならないなど、使用するのが面倒な場合があります。 これはその関数が汎用的に使えるように、動作に自由度を持たせていると、面倒になる傾向にあります。 そんな時、引数なし、又は簡単な引数で呼び出せるような関数を作ってあげれば楽になります。 この場合は、ある程度用途が決まっているので、その関数を呼び出すときの手続きを省略してくれるような関数ですね。 それがラッパーというわけです。 あと良くあるのが、C言語で書かれたライブラリなどをC++の機能を使って使いたいときに、ラッパーを作ったりします。 この場合は逆に機能を追加して使いやすくするイメージですね。 ハンドル(handle)はつまり何かを操作するときのハンドル(車のハンドルと同じ)です。 この概念は良く使われます。 たとえば、ハードディスクにはファイルがたくさん入っています。 その中のファイルを開いて何か処理しようとします。するとディスクアクセスの処理をしなければなりませんが、それを自分で書くのは大変なので、ライブラリを使います。 ライブラリでは、 ・指定されたファイルを開く関数 ・指定されたファイルの中身を読み出す関数 ・指定されたファイルに指定の文字を書き出す関数 などなどたくさん用意します。 ここで一つ問題が生じます。もし複数のファイルを同時に処理したい場合どうやったらよいでしょう。 いちいちファイル名で指定する方法も考えられますが、ファイルを開くときに一つのハンドルという名前の変数を用意し、その変数の中にどのファイルであるという情報、そのファイルのサイズ、そのほか必要な情報を一つにまとめておくと、ファイルを操作するときにはその変数を引数として渡すだけで、ファイルがどれであるのかという指示が簡単に出来ます。 いまファイルハンドルを例にあげましたが、他にもWindowsではたくさんのWindowを開きますので、それら一つ一つにもハンドルが用意されています。 基本的に、 ・同種のものが複数ある ・上記に対して操作する関数が複数ある という条件を満たすようなものに対しては、ハンドルという概念でコントロールすることがよくあります。
その他の回答 (2)
- kee
- ベストアンサー率13% (63/457)
ラッパーとは、ある関数を呼び出す関数のことです。 こうしたことで、使いやすいインターフェースにしたり、無理やり移植が可能になったりします。 ハンドルは、いわゆる識別コード(主キー)です。そのフィールドにおいて一意でなくてはなりません。
お礼
いろんな本を見てみたのですが、説明してある言葉も難しくて頭痛くなっていました。 ありがとうございました。
- don_cha
- ベストアンサー率34% (139/407)
ラッパーとはラップ(ラッピング)つまり「包む・覆う」ということです。 ハンドルとは、車のハンドル同様に操作のための「もの」です。 本はいろいろとありますが、とりあえずインターネットで調べるという手もあります。
お礼
本屋でばかり探していたので、インターネットでも探してみたいと思います。 ありがとうございました。
お礼
mickjey2さん、こんにちは。 今まで頭の上で???が踊っていたのですが、それが減ったような気分です。丁寧に教えてくれて本当にありがとうございました。 これからもっと深くC++を勉強していかなければならなくなったので、いろいろわからないことにぶつかるんだろうな・・・と思うと気が滅入りますが、がんばってみたいと思います。 また、どうしてもわからないときはアドバイスよろしくお願いします。