• ベストアンサー

C++のクラスを使った練習をしています。

以下の項目を勉強したいのですが、いずれかを詳しく述べているWebサイトを教えてくださると助かります。 ・ポインタと配列 ・charを使った文字列操作とstrcpy ・デザインパターン ・newを使ったインスタンス化のメリット、デメリット ・オブジェクト指向を活かしたプログラミングの仕方 ぜひぜひわかるところからでかまいませんのでよろしくお願いします。 Webサイトでなく、直接ご教授いただける分も大変助かります。

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

  • ベストアンサー
  • kmee
  • ベストアンサー率55% (1857/3366)
回答No.1

ここまでの広範囲になるなら、amazonあたりの書評を参考に、本買って熟読した方がいいのでは?

関連するQ&A

  • オブジェクト指向プログラミングについて

    VisualBasicを対象にしたオブジェクト指向プログラミングに関する参考書、Webサイトなどはないでしょうか。 現在、クラスモジュールなどを多用しオブジェクト指向プログラミングを実践しているつもりですが、あまり勉強したわけではないのでいまいちよくわからないです。 (オブジェクト指向プログラミングのメリットとデメリットなど)

  • マルチプルインスタンスのメリット

    100%の自信をもって回答できる方のみ回答をお願いします。 Java等のオブジェクト指向プログラミング技術において、クラスからインスタンスを たくさん作れるというのが特徴の一つとなっていますが、クラスからインスタンスを たくさんつくれるメリットはなんでしょうか。 クラスからインスタンスをたくさん作れなくても、1つ作れば動くプログラムはたくさんありますし、 そういうプログラムであれば、staticなアクセスにすればよいですよね。 クラスからインスタンスがつくれることを説明した本やサイトは山ほどありますが、 インスタンスがたくさん作れることのメリットを説明した本をみたことがなく、 「なぜオブジェクト指向でつくるのか」という本を買って読みましたが、 納得がいくメリットを感じられませんでした。 また世の中のソースをみると、みんな、すぐにクラスを作ってオブジェクトを作っていますが、 みなさんがどうして、オブジェクトを作らなくてもコーディングできるケースのプログラムを オブジェクトを作るのか不思議でしかたありません。 どうしてオブジェクトを作らなくてもいいケースでもオブジェクトを作るのか、 またたくさんオブジェクトを作れるメリットはなんなのか、教えてください。

  • 【至急!】クラスの練習をしています。疑問です!もし

    同スーパークラスから継承させた2つのサブクラスをつくりました。 ひとつのサブクラスをインスタンス化し、そのサブクラス内でもう片方のサブクラスをインスタンス化して、 まるでインスタンスが(別の)新しいインスタンスを作るようにしてみることを考えました。 ところが、以下の条件下しか作れないようです。なぜですか? ・継承元が同スーパークラスではないクラス。 ・main関数内。 また、もし作れるならどのようにしたらいいでしょうか? ※C++の練習なのでcharを使っています。 #include <stdio.h> #include <cstring> #include <cstdlib> #include <ctime> class Ningen { protected: char Name[255]; public: /////////////////////// char *ReturnName(void){ return Name; } /////////////////////// }; //人間____名前をもち、与えられた名前を返す能力がある class Player : public Ningen { public: Player(void){ printf("____What's your name?:"); scanf("%s", Name); } }; //人間____Ningenを継承、名前をユーザにきいて名前を入力させる能力がある class Salesman : public Ningen { public: Salesman(const char *str){ strcpy(Name, str);//Name = str; printf("%s\n",Name); } }; //人間____Ningenを継承、名前を引数で入手して表示する能力がある class Build { protected: char BuildingName[255]; }; //建物____Buildという場所をクラスで用意。ここで人オブジェクトが動く。 class Company : public Build{ public: Company(const char *str){ strcpy(BuildingName, str);//BuildingName = str; printf("%s\n",BuildingName); } }; //建物____Buildを継承、名前を引数で入手して表示する能力がある int main(void){ Player *Player_p;//____プレイヤーのポインターを宣言 Player_p = new Player;//____インスタンスを生成してそれを代入 printf("____Are you name?:%s\n", Player_p -> ReturnName()); Company *Company_p; Company_p = new Company("____SystemConsultingCompany"); Salesman *Salesman_p; Salesman_p = new Salesman("____MINAMI"); delete Salesman_p; delete Company_p; delete Player_p; }

  • JAVAのクラスの考え方は・・?

    JAVAの勉強をしていている学生です。 常々思っていたのですが、クラスの考え方がしっくりきてませんヽ(~-~ よく参考書などで書かれていることで 「クラスは設計図のようなもの、オブジェクトはそこから作成した実体」 「鋳型がクラスでどんどん作れるのがインスタンス」 といった話が疑問でならないのです。 というのも・・クラスの設計って、自分自身をフィールドに宣言したりできますよね。。 でそこから生成して、また自分自身のフィールドに生成して・・とか。 インターフェースを実装したクラスで、、、内部クラスを持ったクラスで、、、ジェネリッククラス、、。 となってくると、最初の考え方では、論理的に無理?私の脳内では変換しきれないです(´;ω;) 多分前提となる考え方が間違っていたり、私の想像力が乏しいだけだと思います。 どなたか、「クラスってこう考えればオブジェクト指向が見えてくる」と表現している本やサイトなどご存じないでしょうか。 一朝一夕で理解しようとは思っていませんので、きちんと参考にして理解しようと頑張ります! 「私的には・・」や「あなたが勘違いしている箇所は・・」といったご意見もぜひお聞きしたいです! クラスかオブジェクト指向かどっちかというより、クラスありきでJAVAのオブジェクト指向が本当に理解できると考えています。参考書やWEBを探してみた限りではやっぱり理解できないです(´;ω;) ちなみにC言語を中学生で始め、プログラミングに触れました。

  • なぜ「C言語」にOOPが実装されなかったの?

    1972年に開発された「C言語」(C++ではない)には「オブジェクト指向」というのがないのですが、なぜ「C言語」に「オブジェクト指向」というのが実装されなかったのですか? 「オブジェクト指向プログラミング」は1960年代後半に登場していたのですが、後発の「C言語」には「ポインタ」はあっても「オブジェクト指向」というのがありません。なぜ「オブジェクト指向」は実装されなかったのでしょうか? 当時コンピュータの性能が低かったため実装が難しかったことと、まだ当時オブジェクト指向自体が無名だった為、「C言語」の開発者自体も知らなかったということもあるのでしょうか?

  • インスタンスオブジェクトとは何かについて教えて!!

    下記内容はあるサイトのインスタンスについての説明文です。 画像は、自分なりに理解したものです。 (1)メモリ上には記憶場所(=ポインタ)はない (2)var Aa = new Bb("13" , "smole");とscript内に追加されたことにより メモリ上に記憶場所(=ポインタ)が作成され、 BbオブジェクトつまりBb("13" , "smole");がその記憶場所(=ポインタ)に入る (3)そしてBb("13" , "smole");が入った 記憶場所(=ポインタ)にAaという名前を付ける。 考え方に間違いがあるでしょうか? ---------------------------------------------------- var Aa = new Bb("13" , "smole"); これは、BbクラスオブジェクトのBbコンストラクタをnew演算子を利用して起動しています。 new演算子は、メモリ上に記憶場所を確保して、Bbオブジェクトを作成した後、そのポインタを返す演算子です。 new演算子から返されたポインタは、Aaへ格納されます。この場合のAaをBbオブジェクトのインスタンスといいます。 また、new演算子でメモリ上に記憶場所を確保して作られたオブジェクトをインスタンスオブジェクトといいます。 つまり、 オブジェクト == インスタンスオブジェクト で、 インスタンス != インスタンスオブジェクト インスタンス != オブジェクト です。 ----------------------------------------------------

  • クラス、オブジェクト、インスタンスの理解で?

    お尋ねします。 既に、バリバリオブジェクト指向でプログラムを書いている方が多いので恐縮ですが、とあるサイトのオブジェクトのサンプルを使って、下記のようにサンプルソースを書いてみました。 --以下ソース--- <?php class Nerimono { private $name; public function __construct() { $this->name= 'ねりもの'; } public function setName($name) { $this->name = $name; } public function getName() { return $this->name; } } $objectNerimono = new Nerimono(); $objectKamaboko = new Nerimono(); $objectKamaboko->setName('かまぼこ'); $objectHanpen = new Nerimono(); $objectHanpen->setName('はんぺん'); echo 'Nerimono オブジェクトの $objectNerimono 実体(インスタンス)を生成した。'; echo "\n"; echo '$objectNerimono の private $name に「' . $objectNerimono->getName() . '」と、既に書いたあった'; echo "\n"; echo 'Nerimono オブジェクトの $objectKamaboko 実体(インスタンス)を生成した。'; echo "\n"; echo '$objectKamaboko の private $name に「' . $objectKamaboko->getName() . '」と書いた'; echo "\n"; echo 'Nerimono オブジェクトの $objectHanpen 実体(インスタンス)を生成した。'; echo "\n"; echo '$objectHanpen の private $name に「' . $objectHanpen->getName() . '」と書いた'; echo "\n"; --ここまで--- そして、これの実行結果が下記です。 C:\Temp>php Nerimono.php Nerimono オブジェクトの $objectNerimono 実体(インスタンス)を生成した。 $objectNerimono の private $name に「ねりもの」と、既に書いたあった Nerimono オブジェクトの $objectKamaboko 実体(インスタンス)を生成した。 $objectKamaboko の private $name に「かまぼこ」と書いた Nerimono オブジェクトの $objectHanpen 実体(インスタンス)を生成した。 $objectHanpen の private $name に「はんぺん」と書いた このコメントのような解釈で、合っておりますでしょうか? 今までオブジェクト指向のメリットが全然理解できず、関数の変わった呼び出し方法としか、理解できていませんでした。 PHPは、本来のオブジェクト指向とは違うようだとは、知っているつもりです。(Pブジェクト思考?w) 間違っているところあれば、ご指摘ください。m(_。_)m PHPは、Ver 5.3.5 です。

    • 締切済み
    • PHP
  • オブジェクト指向の特徴

    プログラミングにおいて Java言語などのオブジェクト指向とは 「クラス(設計図)からインスタンス(実体)を量産できる。」がオブジェクト指向ではないプログラミング言語との決定的な違いなのでしょうか? またオブジェクト指向とオブジェクト指向ではない言語の決定的な違いや 実際に実務において経験した感覚的な違いなどがあれば教えてください。 インターネットに乗っていない些細なことでも構いません。

    • ベストアンサー
    • Java
  • c#でファクトリークラスの使い方

    デザインパターンのファクトリークラスを利用してみるため、下記のサイトをもとにプログラミングをしました。 http://hccweb1.bai.ne.jp/tsune-1/CSharp/factory.html そこで、きになったのですが、上記のようにCreateProductでIdCard を返した場合、 イメージとしては、下記のようになると思います。 Product prd = new IdCard (); この場合、IdCard ないの、publicの変数は他のクラスから参照できなくなってしまいますよね。 もちろん、IdCard prd = new IdCard とすれば、ほかのクラスから参照できるのとおもいます。 そうすると、IdCard の変数をほかのクラスから参照したい場合は、ファクトリークラスを用いるのはむいてないということでしょうか。あるいは、私が何か勘違いをしていますか?

  • C++ 静的クラスの役割が分からない

    こんばんは。 C++で静的オブジェクトがなんなのか試しにプログラミングしているんですが どんな役割があるのか試してもよく分かりません。 static class HOGE { public: int *hoge; private: int value[2]; char moji[6]; public: HOGE() { cout << "HOGE\n"; } void MOJI() { strcpy(moji, "MOJI\n"); } void TEST() { cout << "moji = " << moji << endl; } static void staticMOJI() { } }sObj; sObjからは静的メンバ関数と静的メンバ変数は呼び出せるようです。他は呼び出せません。 そのようにするためにstatic宣言をするものなのでしょうか? このsObjからメンバ変数(*hoge)を呼び出すことは無理なんでしょうか?

専門家に質問してみよう