• ベストアンサー

ラッパーって何なんでしょう・・・?

C++を勉強し始めたのですが、何とも難しい言葉が多くて、書いてあることが本当に理解できません。 ラッパーって? ハンドルって?? と、次から次へと理解不能な言葉が・・・ 読んでいるのは、C++Builderの開発者ガイドと、プログラミング言語C++の本です。 具体的なイメージが浮かばず、概念自体もピンときません。 わかりやすい本などあったら教えてください。 また、とりあえずラッパーとハンドルがどうしても気になるので、この2つの意味教えてください!! よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
noname#11476
noname#11476
回答No.3

ラッパーは、wrapper で包み込むものの意味です。 wrap ラップはサランラップのラップですね。 wrappingラッピングといえば、プレゼントを包むやつですね。 つまり、たとえばある関数を使いたいと思ったとします。 しかし、その関数を呼び出すには、いろんな手続きをしないといけない、また呼ぶときに渡す引数をたくさん設定しなければならないなど、使用するのが面倒な場合があります。 これはその関数が汎用的に使えるように、動作に自由度を持たせていると、面倒になる傾向にあります。 そんな時、引数なし、又は簡単な引数で呼び出せるような関数を作ってあげれば楽になります。 この場合は、ある程度用途が決まっているので、その関数を呼び出すときの手続きを省略してくれるような関数ですね。 それがラッパーというわけです。 あと良くあるのが、C言語で書かれたライブラリなどをC++の機能を使って使いたいときに、ラッパーを作ったりします。 この場合は逆に機能を追加して使いやすくするイメージですね。 ハンドル(handle)はつまり何かを操作するときのハンドル(車のハンドルと同じ)です。 この概念は良く使われます。 たとえば、ハードディスクにはファイルがたくさん入っています。 その中のファイルを開いて何か処理しようとします。するとディスクアクセスの処理をしなければなりませんが、それを自分で書くのは大変なので、ライブラリを使います。 ライブラリでは、 ・指定されたファイルを開く関数 ・指定されたファイルの中身を読み出す関数 ・指定されたファイルに指定の文字を書き出す関数 などなどたくさん用意します。 ここで一つ問題が生じます。もし複数のファイルを同時に処理したい場合どうやったらよいでしょう。 いちいちファイル名で指定する方法も考えられますが、ファイルを開くときに一つのハンドルという名前の変数を用意し、その変数の中にどのファイルであるという情報、そのファイルのサイズ、そのほか必要な情報を一つにまとめておくと、ファイルを操作するときにはその変数を引数として渡すだけで、ファイルがどれであるのかという指示が簡単に出来ます。 いまファイルハンドルを例にあげましたが、他にもWindowsではたくさんのWindowを開きますので、それら一つ一つにもハンドルが用意されています。 基本的に、 ・同種のものが複数ある ・上記に対して操作する関数が複数ある という条件を満たすようなものに対しては、ハンドルという概念でコントロールすることがよくあります。

xxyuccaxx
質問者

お礼

mickjey2さん、こんにちは。 今まで頭の上で???が踊っていたのですが、それが減ったような気分です。丁寧に教えてくれて本当にありがとうございました。 これからもっと深くC++を勉強していかなければならなくなったので、いろいろわからないことにぶつかるんだろうな・・・と思うと気が滅入りますが、がんばってみたいと思います。 また、どうしてもわからないときはアドバイスよろしくお願いします。

その他の回答 (2)

  • kee
  • ベストアンサー率13% (63/457)
回答No.2

ラッパーとは、ある関数を呼び出す関数のことです。 こうしたことで、使いやすいインターフェースにしたり、無理やり移植が可能になったりします。 ハンドルは、いわゆる識別コード(主キー)です。そのフィールドにおいて一意でなくてはなりません。

xxyuccaxx
質問者

お礼

いろんな本を見てみたのですが、説明してある言葉も難しくて頭痛くなっていました。 ありがとうございました。

  • don_cha
  • ベストアンサー率34% (139/407)
回答No.1

ラッパーとはラップ(ラッピング)つまり「包む・覆う」ということです。 ハンドルとは、車のハンドル同様に操作のための「もの」です。 本はいろいろとありますが、とりあえずインターネットで調べるという手もあります。

xxyuccaxx
質問者

お礼

本屋でばかり探していたので、インターネットでも探してみたいと思います。 ありがとうございました。

関連するQ&A

  • Borland C++ Builderについての本

    卒業研究でソフトを開発するにあたって、C++ Builder 6を使い始めたのですが、使い方がよく分からなくて困っています。 「こういう機能をさせたい!・・・でも、どのコンポーネントを使ったら良いの?」と、日々頭を悩ませています。付属の分厚い開発者ガイドをみても、本当にちんぷんかんぷんで、悲しくなりました。 C++ Builderの使い方などが載っている本を知っている方、是非助言していただけたら、と思います。 よろしくお願いします。

  • システムエンジニアについて

    Javaなどを勉強する入門書の本や雑誌は何がいいですか? c言語はよく本が理解できなかったので、かなり簡単なプログラミングやソフト開発の本を教えてください!

  • 基本情報技術者の参考書について

    秋期に基本情報技術者を受けようと思っています。 言語選択はCを選んで、「猫でも分かるC言語プログラミング」(超入門書)を大体読みをえたところなのですが、当然過去問なんてわかりません。 そこで過去問を解けるようになるまでの2冊目、3冊目となる本を教えてください。(特にFE向けにこだわりません)またポインタを理解を助長するための本もほしいです。 そして基礎教本で言語以外の部分も(本の内容は言語も含む)勉強しているのですが、説明がほとんどない暗記物です。 覚えるより理解するタイプの私には基礎の概念なしで、普段やらないことはなかなか頭に入りません。基本的な単語にも判らない部分が多いのでそういう言葉の概念から丁寧に説明してくれる本も教えてください。 「新人SEのための基本情報技術者入門」は抜きでお願いします。

  • Javaを使用したファイル操作について

    Javaを使用したプログラミングと聞くと、Webアプリケーションの開発というイメージがあるのですが、VBNやbat処理等でできるファイル操作などはできるのでしょうか? また、Javaに限らず、c言語等のプログラミング言語でも可能なのでしょうか? よろしくお願いします。

    • ベストアンサー
    • Java
  • 機械設計職についての質問とプログラミングについて…

    機械設計職についての質問とプログラミングについての質問 技術的な質問ではありませんが、機械設計を志す学生の質問に寛大な気持でお答えいただけると嬉しいです。よろしくお願いします。 まず一般的な機械設計職について質問させていただきます。 業界の方々は「開発」という言葉と「設計」という言葉を違うように使用されているように思うのですが、開発=大きい企業での研究開発、設計=CADを使用した設計と考えて良いのでしょうか? つぎにプログラミングについて質問させていただきます。 ずばり、機械設計を志す人間はどの程度プログラミング言語(例えばC言語)が操れなければならないのでしょうか? NC言語、CAEなどの分野も含めてお答えください。

  • RAD StudioとC++ビルダーの違い

    現在、エンバカデロ社製の開発環境について調べています。 https://www.embarcadero.com/jp/products こちらのサイトで見る限り、 ・RAD Studio XE7 ・Delphi XE7 ・C++ Builder XE7 この3種類に大別されるようですが、どのような違いがあるのかがよくわかりません。私はRAD Studioというのは使用したことはあるのですが、言語はC++でのプログラミングだった思うのですが、C++ Builderとの具体的な違いについてご教示頂きますよう、よろしくお願い致します。

  • 3Dゲームを作ってみたいのですが(初心者)

    3Dゲーム(windows)をつくってみたいのですがどのように開発したらいいのでしょうか? いろんなサイトをみてみると、directxで開発するのが一般的のようなので、c言語の本を一冊よんでその後に、vc++をつかったwindowsプログラミングの本を一冊読みました。(まだ完璧にわかったわけではないけど)次はどんなことをすればいいのでしょうか?参考になる本などを教えてください。 まず今後は、C++を覚えて?次にdirectx関連の本を読めばいいのでしょうか?(MFCはつかわない?) 本当のゲーム会社はどのようにゲームを作っているのでしょうか?プログラマとグラフィック作る人、音楽作る人が各何人ずついて、開発期間は何年ぐらいだとかを知っていればおしえてください。

  • VC++ と C++Builder

    C++の基本的な構造は理解していて、Win32APIを勉強しようとVC++でプログラミングを始めた者です。参考書は猫でもわかるWindowsプログラミングを見ながら勉強しています(難しくてあまり理解出来ていませんが)。 しかし、機能が多すぎたりと使いこなす自信がありません。 C++Builderに変えてみようかと思っているのですが、VC++とC++Builderの違いを教えて下さい。漠然としすぎていてアホっぽい質問ですが・・。 VC++とC++Builderのプログラムの書き方の大きな違いなどはあるのでしょうか? また、みっちり調べたつもりですが無償のBorlandC++Builderが見あたらないのですが・・・。

  • C++ Builderについて

    以前から、C言語、C++などをやっていて、最近になって、C++Builder(Version 5.0)を使ってみようと思いました。すこしいじってみたのですが、さまざまなことを簡単にできそうな気がしました。しかしながら、正直なところ分からないことだらけです。ネット上で初心者向けの本を購入したのですが、内容は薄く、自分が目的とするものに達するには十分ではありませんでした。探し方が悪いのか、本もさほど見つかりませんでした・・・・。 また、様々なサイトも見てみたのですが、やはりC++Builderの初歩的な使い方もいまいち分かっていないせいか、わけがわかりません。一応、購入した本で勉強しているのですが・・・・。 できることなら、初歩的なことから、詳しく様々なことが分かり易く載っている本等は無いでしょうか?C言語のときは、ぶ厚い本で勉強しました。そのような本もたくさんあったように思われます。C++Builderには無いのでしょうか?それともCやC++などをみっちりやらなければ、使えないって事なのでしょうか?

  • プログラミング言語の違いを教えてください!

    こんにちわ。 ただ今就職活動中の者です。 大学ではC++の基礎を勉強しましたが色々あるプログラミング言語の違いがよく理解できていません。 プログラミング言語はCOBOL、JAVA、C言語、visual basic、perlなど、本当に様々な言語がありますが、それらの言語について詳しく教えていただけませんでしょうか? (それぞれはどういった分野のシステムの開発に向いていて、どのような弱点があるなど)お手数ですが、よろしくお願いします!

専門家に質問してみよう