サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
iPhone 16
www.asahi-net.or.jp/~yf8k-kbys
C++入門 基礎知識は仮定しません あなたは 人目のお客さんです。 ゆっくりしていってください。 C++入門1 プログラミングの基礎知識 C++入門2 coutを使った出力 C++入門3 cinを使った入力 C++入門4 オブジェクト指向について C++入門5 クラスを作ろう C++入門6 クラスを作ろう(補足) C++入門7 クラスの練習 C++入門8 コンストラクタの引数 C++入門9 クラス間の関係 C++入門10 乱数 C++入門11 while文とfor文 C++入門12 値を戻す関数 C++入門13 値を戻す関数の例 C++入門14 パブリックとプライベート C++入門15 継承 C++入門16 継承の練習 C++入門17 さらに継承 C++入門18 デストラクタ C++入門19 配列 C++入門20 ポインタ C++入
C++によるプログラミング入門26 コピーコンストラクタ/代入演算子・後編 こんにちは。今回は、前回の前編の完結編です。 さて、前編では、コピーと代入は注意しなければいけない、ということを説明しました。 コピーと代入は次のようなものでした。Betu one; Betu two = one; //oneをtwoにコピー Betu three; three = one; //oneをthreeに代入 実は、コピーの時には、コピーコンストラクタという特別なコンストラクタが呼び出されることになっています。また、代入の時には、代入演算子という演算子(「=」のことです)が使われるわけです。そこで、コピーや代入の問題は、これらを自分で定義すれば解決されるのです。 そのために、コピーコンストラクタと代入演算子のカタチを紹介しなければなりません。それは一般に、次のようなカタチです。(
C++によるプログラミング入門15 継承 みなさん、いかがお過ごしでしょうか? さて今日は「継承」について説明します。 さて、入門5、6あたりでやった猫クラスを思い出して下さい。たしか class Neko { string name; public: Neko(string s); //「Neko(string);」でも可 void naku() const; }; Neko::Neko(string s) : name(s){} void Neko::naku() const{ cout << "にゃあ。俺様は" << name << "だ。" << endl; } こんなのでした。(nakuの定義がクラス定義の中にあるものと外にあるものがありましたが、ここでは、外にあるものを使います。これはどちらでもよく、中に定義があっても以下の議論は同じです。) ここで、別の猫を考えることにします
C++によるプログラミング入門22 仮想関数 こんにちは。この「C++入門」は、7、8年前に書いたものを、2005年現在書き直しています。初心を忘れてはいけないですね。 さて、今回は「仮想関数」です。いよいよ「オブジェクト指向プログラミング」最後の項目ですね。...で、とりあえず、ポインタの復習をしましょう。ポインタというのは、オブジェクトの場所(メモリ上の場所)を表す値(アドレス)格納する変数です。ポインタにオブジェクト(クラスのインスタンス)のアドレスを代入して、何かするのでした。オブジェクトは、newを使って生成することもできます。例えば、次のプログラムを見てください。 //hito_sample.cpp #include <iostream> using namespace std; //人を表すクラス class Hito { int power; public: Hito(in
C++によるプログラミング入門7 クラスの練習 こんにちは。はやいもので、もう、5月ですね。今回は「クラスを書く練習」です。 昔、「2次方程式の解の公式」なんてありましたね。数学の先生があれを黒板で導いたのを見て、すぐ「なるほど、わかった」と、思った人もいるでしょうが、普通の人(私なんかです)は、それより、例題を解いていてなんとなくわかったような気がしたのではないでしょうか?えーと、数学の話なんかしてすみません。 つまり、わかろうと考え込むより、やってみる方がわかるのでは、という話です。プログラムの場合、「コンパイル・実行」->「改造」->「コンパイル・実行」->「改造」->・・・を繰り返すのがよいと思うのです。はじめは単純なタイプミスでコンパイルエラーがでますが、そのうち、タイプミスはすぐに探せるようになります。そうこうしているうちに、おっかなびっくりでなく(簡単な)プログラムが作れるよ
C++によるプログラミング入門10 乱数 こんにちは。前回のプログラムはまだまだ未完成ですが、それでもかなり長かったですね。しばらくあんなのはありません。あれを完成させるため、今日から少し地道な勉強をします。 なお、これからの内容の多くはCと共通の内容です。C経験者も退屈しないようにクラスをつくる例も挙げていこうとは思うのですが、、、、。まあ、とばし読みしてください。 今日は、入門9で出てきた「新しいこと」の説明をします。 まず、でたらめな数、つまり乱数の話です。「乱数を発生させる」ということは「さいころを振る」というようなことです。ただ、さいころの場合は1から6の数しかでませんが、プログラムでは自由に選べます。 まず例を見ましょう。次のようなプログラムをコンパイルし実行してみてください。//ransu.cpp #include <iostream> #include <cstdlib>
C++によるプログラミング入門21 newとdelete こんにちは。最近寒いですが、みなさんはいかがお過ごしでしょう。 前回に、ポインタの話をしました。そのときに、ちょっと言いましたが、ポインタは一般にとても難しいと言われています。それには、はっきり別の二つの理由があるように私は思います。 1.初心者にとって取っつきにくい。 2.プロでもよく間違える。 まず、1の方から話しましょう。前回の説明ですっきりする人はほとんどいないと思うのです。もっと詳しい教科書を見ると、さらに「難しい説明」や「実例」があって、初心者はとまどうでしょう。(私がそうでした。)私自身の経験から言うと、「何の役に立つのだろう」などと、気をもむより、実際に使われている例を見てゆっくり馴染んでいけばよいのだと思うのです。 変な話ですが、外国語を覚えるのとプログラミング言語を覚えるのはとてもよく似ています。(これは学生時代
C++によるプログラミング入門9 クラス間の関係 こんにちは。みなさん、いかがおすごしでしょうか? 最近、更新のペースが落ちてますね。もし、待っている方がいましたら、感激ですが、すみません。 さて、前回まで、クラスの書き方を説明してきました。しかし、どうして、クラスが有用なのかまだピンと来ないかもしれません。実際、「クラスがあってよかった」というプログラムはまだ書いていないのです。 (ずいぶん前にも書きましたが、)一般的に言うと「クラスがあってよかった」というプログラムは、大規模なものになると思います。というのは、クラスは「プログラムの部品」と考えられるからです。「個々の部品を作って組み上げる」という方法は、大きなものを作るときにこそ向いているのです。 残念ながら、そのように大きなプログラムをここでお見せすることはできません。そこで、大体の話をしてから、「それらしい例」に移ろうと思います。
C++によるプログラミング入門20 ポインタ こんにちは。今回はいよいよポインタです。初心者の方は「何がいよいよだよ」と思ったことでしょう。どうもすみません。これにはいわく因縁があるのです。なんちゃって。 多くの人がC++のもとになったCという言語を勉強したのですが、同時に大量の挫折者もだしたようです。その挫折理由のナンバーワンがこのポインタだったと言われています。そいうお話があったのです。少しおどかしてしまいましたが、安心してください。本当はそんなに難しいものではありません。 前に変数とは一般に整数などをいれておく「いれもの」だという話をしましたが、いれものに入れられた情報は、メモリ上のどこかに置かれるはずです。メモリが実際にどのように作られているかは、特別な人以外知らないわけですが、イメージだけは持っていましょう。それは、情報をいれておく箱の列のようなものです。そして、メモリの個々の箱
Cによるプログラミング入門14 プログラムファイルの分割 今回は、プログラムファイルを分割する話です。いろいろなコンパイラについて説明できないので、Borland C++ 5.5について説明します。もちろん、他のコンパイラでも、考え方は共通しています。 ただし、ここですることは、コンパイラ(実はリンカも含まれます)の詳細な説明ではなく、「考え方」の説明です。 とりあえず、例を見てみましょう。まず、次のようなファイルを2つ作って見てください。ファイルの名前は、コメントで示したものとします。 /* func.h */ int func(void); /* func.c */ #include <stdio.h> #include "func.h" int func(void){ int a; printf("好きな数字を入力してください。\n"); scanf("%d", &a); retur
C++によるプログラミング入門補足4 テンプレートについて こんにちは。今回は、テンプレートというものについて、簡単に説明します。テンプレートが難しいという話も聞きますが、具体例を見れば、それがどういうものかはすぐわかると思います。 実用的なクラスを作ると、その説明で読む方も書く方も疲れてしまうと思います。(いきなり、、、)そこで、実用性は考えない、簡単なクラスで考えることにします。たとえば、下のようなクラスを考えましょう。 class Iremono { int data; public: void set_data(int d){ data=d; } int get_data(){ return data; } }; このクラスはdataのいれものです。このクラスについては、次のようなプログラムができるでしょう。 //templ_sample0.cpp #include <iostre
Effective C++ 第3版 プログラムとデザインを改良するための55項目 2006年5月22日発行 315ページ 3800円+税 ピアソン・エデュケーション発行 スコット・メイヤーズ著 小林健一郎訳 1991年の初版からC++コミュニティに大きな影響を与えてきた書籍の第3版です。内容は、55個のガイドライン(アドバイス)からなっています。C++プログラミングをするなら、ぜひご一読を、と思います。 第 1章 C++に慣れよう 第 2章 コンストラクタ、デストラクタ、コピー代入演算子 第 3章 リソース管理 第 4章 デザインと宣言 第 5章 実装 第 6章 継承とオブジェクト指向設計 第 7章 テンプレートとジェネリックプログラミング 第 8章 newとdeleteのカスタマイズ 第 9章 いろいろな事 付録A Effective C++を超えて 付録B 第2版と第3版の対応表 訂正
C++によるプログラミング入門3 cinを使った入力 こんにちは。前回は画面への出力を見ました。今回はキーボードから入力する方法を学びます。 今回は「コンピュータが名前をきいて、それに答えると、コンピュータがあいさつする」というようなプログラムを考えてみましょう。まず、コンピュータは本当に質問したりしませんから、そのように見せかける必要があります。それは前回やったcoutでできそうです。 しかし、「質問された人」(これからは、「ユーザ」といいます)の入力はどうやって受け取ればよいでしょう。入力を受け取るためには、まず、入力をいれる「いれもの」が必要です。 実は、名前のような文字の列をいれる「いれもの」は string name; などと書くことができます。 ここでstringは、「文字列」という意味です。こうすると、「文字列」をいれる「いれもの」であるnameができることになっているのです
C++によるプログラミング入門1 プログラミングの基礎知識 こんにちは。C++を使ったプログラミング入門をはじめます。 この講座はプログラミングの初心者を対象としてC++を楽しくおぼえていくというものです。ぎちぎちした文法や細かい知識は話しません。そういうことは、 この講座をおえれば、一人でも本を読んでおぼえていけるでしょう。 また、用語はすべてキチンと解説していくと百科事典になってしまうので、ウソにならないように気をつけながら、なるべく簡単な説明で講義を進めていくつもりです。 C++でプログラミングをする場合、C++用の「処理系」(後述)が必要です。これについてはあらかじめどこかで入手して、簡単な使い方を、知っている近くの人にでも聞いておいてください。有名な処理系としては、例えば、Borland C++、Visual C++、gccなどがあります。もちろん、他にもいろいろ優れたものがあり
C++によるプログラミング入門 クラスを作ろう こんにちは。いよいよ本番です。 今日の内容を、初心者が理屈だけで、はじめから理解するのは難しいと思います。しかし、プログラミングは「習うより慣れろ」ということばがあてはまる世界です。解説をじっくり読むより、さっと読んで、サンプルをコンパイル・実行してみてください。今日のポイントは「とにかくコンパイル・実行」です。うまく動いたら、ごく簡単な改造をしてみてください。そのうち、いろいろ、わかってくることと不思議に思えることが、あらためて出てくることでしょう。そうなってから、今度はもう少しゆっくり解説を読んでみてください。 文字列をいれる「いれもの」や、整数をいれる「いれもの」は string name; int tosi; などと、作るのでした。このような「いれもの」を変数というのでしたね。このように「作る」ことを、業界用語では、「定義する」と言い
C++言語によるプログラミング入門6 クラスを作ろう(補足) こんにちは。前回はNekoというクラスを作ってみました。宿題の「犬」はできましたか?(これは最後に考えます。) 今回は、クラスNekoを、もう少し書き直してみます。プログラムの実行そのものに変化はなく、ちょっと足踏みな感じがするかもしれませんが、一気に新しいneko3.cppまで読んでみてください。 前回は次のようなクラスNeko(猫)を書いてみました。 class Neko { private: string name; public: Neko(string s){ name = s; } void naku(){ cout<<"にゃあ。俺様は"<<name<<"だ。"<<endl; } }; 説明は長かったですが、コード量はどうということはありません。わかりにくくてもプログラム(前回のneko.cpp)をコンパイルし実行し
C入門 基礎知識は仮定しません あなたは 人目のお客さんです。 ゆっくりしていってください。 C入門をはじめます。これは、大学で受け持っている「Cの半期講義」の補助教材です。 ご利用になる場合は以下の点にご注意ください。 1. C++入門やJava入門の前提講義ではありません。 C++入門もJava入門も基礎知識を仮定していません。それらに興味のある人は、直接どうぞ。^^) 特に、私は、「C++やJavaを勉強するなら、まずCから」とは思いません。 「C → C++、Java」より「C++、Java → C」の順に勉強した方がよいかもしれません。 ただし、いずれにしても、Cを知っていて悪いことはありません。 2. 「プログラマ予備軍」のためのハードな講義ではありません。 あくまで半期科目です。「基礎教養」的な内容にしようと思っています。 特に、はじめてプログラミングをする人向きに書きます。
Java入門 基礎知識は仮定しません あなたは 人目のお客さんです。 ゆっくりしていってください。 こちらのページでは、Java入門の記事を書いてみます。ただし、とてもゆっくりになるでしょう。 なお、製品版として「これならわかるJava」があります。いえ、まあ、それはそういうことで。m(__)m Java入門1 プログラミングの基礎知識 Java入門2 画面への出力 Java入門3 キーボードからの入力 Java入門4 オブジェクト指向について Java入門5 独自の型を作ってみよう Java入門6 クラスの理由 Java入門7 クラスの練習 Java入門8 コンストラクタの引数 Java入門9 クラスの関係 Java入門10 乱数 Java入門11 while文とfor文 Java入門12 値を返すメソッド Java入門13 値を返すメソッドの
Eclipseプラグイン開発(Contributing to eclipse) デザインパターン × テスト駆動開発 Erich Gamma、Kent Beck著 小林健一郎訳 ソフトバンクパブリッシング発行 398ページ 3,800円+税 原著サポートページ: http://www.awprofessional.com/titles/0321205758 訂正・補足はこのページの一番下です。 最近注目されている開発環境であるEclipseに関する本を翻訳しました。使用言語はJavaです。まあ、その、よろしくお願いしますね。(^^) この本は以下のような人を対象にしています。 1.Eclipseで本格的なプラグインを作りたい。 2.デザインパターンの実例を見たい。 3.テスト駆動開発の実例を見たい。 プラグインとは、Eclipseに付け加える「拡張機能」のことです。実は、Eclipse自身
みなさま こんにちは。ここには、C++やJavaなど、プログラミングの入門記事を書いていこうと思っています。 一応、製品版がありますが、ここはもちろん無料です。更新はとてもゆっくりになると思いますが、よろしければ、気長につきあってください。一緒に楽しくプログラミングしていきましょう。 入門記事の読み方 細部にこだわるより、全体の流れを見てください。最初に解説をざっと読んだら、サンプルをコンパイル・実行し、うまくいったら、少しだけ書き換えてまた実行してみてください。書き換えがうまくいったら、わかっていることになるのです。それから、少しゆっくり解説を読んでみてください。 そういう勉強方法を嫌う人がいることも知っています。しかし、「すべてをひとつひとつ理解してから進もう」として身動きが取れなくなってしまう人もたくさんいるのです。20歳頃の私がそうでした。それが、「わかってきたな」、「おもしろいな
このページを最初にブックマークしてみませんか?
『www.asahi-net.or.jp』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く