<?xml version="1.0" encoding="UTF-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
   <title>C言語とC++入門勉強ルーム</title>
   <link rel="alternate" type="text/html" href="http://www.mapee.jp/cpp/" />
   <link rel="self" type="application/atom+xml" href="http://www.mapee.jp/cpp/atom.xml" />
   <id>tag:www.mapee.jp,2011:/cpp//5</id>
   <updated>2010-01-19T17:12:09Z</updated>
   <subtitle>C言語とC++を勉強していくブログです。RubyやPHP、Pythonは、みなCで書かれていることから、C言語とC++に興味を持ちました。</subtitle>
   <generator uri="http://www.sixapart.com/movabletype/">Movable Type 3.34</generator>

<entry>
   <title>STL（Standard Template Library）とは</title>
   <link rel="alternate" type="text/html" href="http://www.mapee.jp/cpp/stlstandard_template_library.html" />
   <id>tag:www.mapee.jp,2008:/cpp//5.301</id>
   
   <published>2008-06-20T03:39:37Z</published>
   <updated>2010-01-19T17:12:09Z</updated>
   
   <summary>STL（Standard Template Library）は、コンテナ（リスト、配列など）とアルゴリズムを中心とするC++のライブラリです。 STLを用いることで、二重リンクリスト（双方向リンクリスト）や動的配列のコーディングが楽になりま...</summary>
   <author>
      <name></name>
      
   </author>
         <category term="180)テンプレート・STL" scheme="http://www.sixapart.com/ns/types#category" />
   
   
   <content type="html" xml:lang="ja" xml:base="http://www.mapee.jp/cpp/">
      STL（Standard Template Library）は、コンテナ（リスト、配列など）とアルゴリズムを中心とするC++のライブラリです。 STLを用いることで、二重リンクリスト（双方向リンクリスト）や動的配列のコーディングが楽になりま...
   </content>
</entry>
<entry>
   <title>クラステンプレート</title>
   <link rel="alternate" type="text/html" href="http://www.mapee.jp/cpp/post_67.html" />
   <id>tag:www.mapee.jp,2008:/cpp//5.300</id>
   
   <published>2008-06-19T13:08:20Z</published>
   <updated>2008-06-19T13:38:29Z</updated>
   
   <summary><![CDATA[テンプレートは、クラスにも利用できます。 関数テンプレートと同じような使い方です。 #include &lt;cstdlib&gt; #include &lt;iostream&gt;   // 足し算のクラス template&lt;ty...]]></summary>
   <author>
      <name></name>
      
   </author>
         <category term="180)テンプレート・STL" scheme="http://www.sixapart.com/ns/types#category" />
   
   
   <content type="html" xml:lang="ja" xml:base="http://www.mapee.jp/cpp/">
      <![CDATA[テンプレートは、クラスにも利用できます。 関数テンプレートと同じような使い方です。 #include &lt;cstdlib&gt; #include &lt;iostream&gt;   // 足し算のクラス template&lt;ty...]]>
   </content>
</entry>
<entry>
   <title>テンプレートでの関数の特殊化</title>
   <link rel="alternate" type="text/html" href="http://www.mapee.jp/cpp/post_66.html" />
   <id>tag:www.mapee.jp,2008:/cpp//5.299</id>
   
   <published>2008-06-19T12:34:29Z</published>
   <updated>2008-06-19T13:08:15Z</updated>
   
   <summary>C++のテンプレート - C言語とC++入門勉強ルームで、紹介した大きいほうの値を返す関数maxですと、Cの文字列の比較が行えません。 Cの文字列は・・・ const char *name = &quot;Tom&quot;; と、文字ポインタ「char *」...</summary>
   <author>
      <name></name>
      
   </author>
         <category term="180)テンプレート・STL" scheme="http://www.sixapart.com/ns/types#category" />
   
   
   <content type="html" xml:lang="ja" xml:base="http://www.mapee.jp/cpp/">
      C++のテンプレート - C言語とC++入門勉強ルームで、紹介した大きいほうの値を返す関数maxですと、Cの文字列の比較が行えません。 Cの文字列は・・・ const char *name = &quot;Tom&quot;; と、文字ポインタ「char *」...
   </content>
</entry>
<entry>
   <title>C++のテンプレート</title>
   <link rel="alternate" type="text/html" href="http://www.mapee.jp/cpp/c_1.html" />
   <id>tag:www.mapee.jp,2008:/cpp//5.298</id>
   
   <published>2008-06-19T12:27:34Z</published>
   <updated>2008-06-19T12:34:09Z</updated>
   
   <summary>C++のテンプレート機能は、汎用的な関数を定義するために使われます。 テンプレートから関数個別のインスタンスを生成し、オーバーロードした関数のように扱うことができます。 template宣言での定義の仕方は、パラメータつきのマクロ定義のやり...</summary>
   <author>
      <name></name>
      
   </author>
         <category term="180)テンプレート・STL" scheme="http://www.sixapart.com/ns/types#category" />
   
   
   <content type="html" xml:lang="ja" xml:base="http://www.mapee.jp/cpp/">
      C++のテンプレート機能は、汎用的な関数を定義するために使われます。 テンプレートから関数個別のインスタンスを生成し、オーバーロードした関数のように扱うことができます。 template宣言での定義の仕方は、パラメータつきのマクロ定義のやり...
   </content>
</entry>
<entry>
   <title>ヘッダ・ヘッダファイル</title>
   <link rel="alternate" type="text/html" href="http://www.mapee.jp/cpp/post_65.html" />
   <id>tag:www.mapee.jp,2008:/cpp//5.296</id>
   
   <published>2008-06-19T06:11:24Z</published>
   <updated>2008-06-19T06:28:10Z</updated>
   
   <summary><![CDATA[include &lt;assert.h&gt; とあるように、自作するモジュールのヘッダファイルの拡張子は、「.h」とします。 ヘッダファイルとは、モジュール間で共有する情報を記述したファイルとなります。 ヘッダファイルに書く具体的な内容...]]></summary>
   <author>
      <name></name>
      
   </author>
         <category term="170)モジュール" scheme="http://www.sixapart.com/ns/types#category" />
   
   
   <content type="html" xml:lang="ja" xml:base="http://www.mapee.jp/cpp/">
      <![CDATA[include &lt;assert.h&gt; とあるように、自作するモジュールのヘッダファイルの拡張子は、「.h」とします。 ヘッダファイルとは、モジュール間で共有する情報を記述したファイルとなります。 ヘッダファイルに書く具体的な内容...]]>
   </content>
</entry>
<entry>
   <title>staticキーワードでローカル（プライベート）にする</title>
   <link rel="alternate" type="text/html" href="http://www.mapee.jp/cpp/static_2.html" />
   <id>tag:www.mapee.jp,2008:/cpp//5.295</id>
   
   <published>2008-06-19T05:36:51Z</published>
   <updated>2008-06-19T06:08:56Z</updated>
   
   <summary>staticキーワードは、C++のプログラミングではよく出てきます。 モジュールプログラミングにおいては、変数や関数が有効となる範囲をファイル内にとどめて、そのファイルに対してローカル（プライベート）にしたい場合に用います。 グローバルに定...</summary>
   <author>
      <name></name>
      
   </author>
         <category term="170)モジュール" scheme="http://www.sixapart.com/ns/types#category" />
   
   
   <content type="html" xml:lang="ja" xml:base="http://www.mapee.jp/cpp/">
      staticキーワードは、C++のプログラミングではよく出てきます。 モジュールプログラミングにおいては、変数や関数が有効となる範囲をファイル内にとどめて、そのファイルに対してローカル（プライベート）にしたい場合に用います。 グローバルに定...
   </content>
</entry>
<entry>
   <title>externキーワードで外部ファイルの変数・関数を利用</title>
   <link rel="alternate" type="text/html" href="http://www.mapee.jp/cpp/extern.html" />
   <id>tag:www.mapee.jp,2008:/cpp//5.294</id>
   
   <published>2008-06-19T04:52:05Z</published>
   <updated>2008-06-19T05:31:36Z</updated>
   
   <summary>モジュールを制作する場合は、ファイルを分割しますから、複数のファイルをまたがって共通する変数を使ったり、別ファイルで定義してある変数を使いたい場面があります。 externキーワードで変数や関数を宣言すると、別ファイルで定義してある変数や関...</summary>
   <author>
      <name></name>
      
   </author>
         <category term="170)モジュール" scheme="http://www.sixapart.com/ns/types#category" />
   
   
   <content type="html" xml:lang="ja" xml:base="http://www.mapee.jp/cpp/">
      モジュールを制作する場合は、ファイルを分割しますから、複数のファイルをまたがって共通する変数を使ったり、別ファイルで定義してある変数を使いたい場面があります。 externキーワードで変数や関数を宣言すると、別ファイルで定義してある変数や関...
   </content>
</entry>
<entry>
   <title>モジュールとは</title>
   <link rel="alternate" type="text/html" href="http://www.mapee.jp/cpp/post_64.html" />
   <id>tag:www.mapee.jp,2008:/cpp//5.293</id>
   
   <published>2008-06-19T04:36:16Z</published>
   <updated>2008-06-19T04:51:55Z</updated>
   
   <summary><![CDATA[これまでのほとんどのプログラムでは、一番最初の部分に・・・ include &lt;iostream&gt; include &lt;assert.h&gt; などとヘッダファイルをインクルードしてきました。 これらは、汎用化された機能が定...]]></summary>
   <author>
      <name></name>
      
   </author>
         <category term="170)モジュール" scheme="http://www.sixapart.com/ns/types#category" />
   
   
   <content type="html" xml:lang="ja" xml:base="http://www.mapee.jp/cpp/">
      <![CDATA[これまでのほとんどのプログラムでは、一番最初の部分に・・・ include &lt;iostream&gt; include &lt;assert.h&gt; などとヘッダファイルをインクルードしてきました。 これらは、汎用化された機能が定...]]>
   </content>
</entry>
<entry>
   <title>stackクラスのテストをtry～catch文で書く</title>
   <link rel="alternate" type="text/html" href="http://www.mapee.jp/cpp/trycatch_1.html" />
   <id>tag:www.mapee.jp,2008:/cpp//5.292</id>
   
   <published>2008-06-18T15:14:35Z</published>
   <updated>2008-06-18T16:25:29Z</updated>
   
   <summary>C++のクラス定義・クラスでのスタック実装 - C言語とC++入門勉強ルームでは、エラー処理としてassertを利用していましたが、これをtry~catch文に変更してみます。 assertによるエラー処理は・・・ assert((coun...</summary>
   <author>
      <name></name>
      
   </author>
         <category term="160)例外" scheme="http://www.sixapart.com/ns/types#category" />
   
   
   <content type="html" xml:lang="ja" xml:base="http://www.mapee.jp/cpp/">
      C++のクラス定義・クラスでのスタック実装 - C言語とC++入門勉強ルームでは、エラー処理としてassertを利用していましたが、これをtry~catch文に変更してみます。 assertによるエラー処理は・・・ assert((coun...
   </content>
</entry>
<entry>
   <title>try～catch文</title>
   <link rel="alternate" type="text/html" href="http://www.mapee.jp/cpp/trycatch.html" />
   <id>tag:www.mapee.jp,2008:/cpp//5.291</id>
   
   <published>2008-06-18T14:49:50Z</published>
   <updated>2008-06-18T15:20:28Z</updated>
   
   <summary><![CDATA[例外処理としてのtry～catch文を使うことができます。 try {     // 例外が発生する可能性のある処理 } catch (hoge_err&amp; err) {     // throwされた例外をcatchした時の処理 }...]]></summary>
   <author>
      <name></name>
      
   </author>
         <category term="160)例外" scheme="http://www.sixapart.com/ns/types#category" />
   
   
   <content type="html" xml:lang="ja" xml:base="http://www.mapee.jp/cpp/">
      <![CDATA[例外処理としてのtry～catch文を使うことができます。 try {     // 例外が発生する可能性のある処理 } catch (hoge_err&amp; err) {     // throwされた例外をcatchした時の処理 }...]]>
   </content>
</entry>
<entry>
   <title>派生クラスのコンストラクタ・デストラクタ</title>
   <link rel="alternate" type="text/html" href="http://www.mapee.jp/cpp/post_63.html" />
   <id>tag:www.mapee.jp,2008:/cpp//5.290</id>
   
   <published>2008-06-18T11:49:16Z</published>
   <updated>2008-06-18T12:09:39Z</updated>
   
   <summary><![CDATA[コンストラクタ・デストラクタの呼び出し順 派生クラスのコンストラクタ、デストラクタがどのように呼び出されるか確認します。 #include &lt;iostream&gt;   class base { public:     // con...]]></summary>
   <author>
      <name></name>
      
   </author>
         <category term="100)クラス" scheme="http://www.sixapart.com/ns/types#category" />
   
   
   <content type="html" xml:lang="ja" xml:base="http://www.mapee.jp/cpp/">
      <![CDATA[コンストラクタ・デストラクタの呼び出し順 派生クラスのコンストラクタ、デストラクタがどのように呼び出されるか確認します。 #include &lt;iostream&gt;   class base { public:     // con...]]>
   </content>
</entry>
<entry>
   <title>派生クラスによる関数の隠蔽</title>
   <link rel="alternate" type="text/html" href="http://www.mapee.jp/cpp/post_62.html" />
   <id>tag:www.mapee.jp,2008:/cpp//5.289</id>
   
   <published>2008-06-18T10:21:57Z</published>
   <updated>2008-06-18T10:43:41Z</updated>
   
   <summary><![CDATA[派生クラスで隠蔽される関数の例を見てみます。 #include &lt;iostream&gt;   class parent { public:     int calc(int a, int b) { return (a + b); }...]]></summary>
   <author>
      <name></name>
      
   </author>
         <category term="100)クラス" scheme="http://www.sixapart.com/ns/types#category" />
   
   
   <content type="html" xml:lang="ja" xml:base="http://www.mapee.jp/cpp/">
      <![CDATA[派生クラスで隠蔽される関数の例を見てみます。 #include &lt;iostream&gt;   class parent { public:     int calc(int a, int b) { return (a + b); }...]]>
   </content>
</entry>
<entry>
   <title>仮想クラス</title>
   <link rel="alternate" type="text/html" href="http://www.mapee.jp/cpp/post_61.html" />
   <id>tag:www.mapee.jp,2008:/cpp//5.288</id>
   
   <published>2008-06-18T09:49:47Z</published>
   <updated>2008-06-18T10:20:48Z</updated>
   
   <summary><![CDATA[基底クラスparentを継承する派生クラスchild_a, child_bがあり、さらにchild_a, child_b両方を継承するgrandクラスの定義を考えてみます。 #include &lt;iostream&gt;   class...]]></summary>
   <author>
      <name></name>
      
   </author>
         <category term="100)クラス" scheme="http://www.sixapart.com/ns/types#category" />
   
   
   <content type="html" xml:lang="ja" xml:base="http://www.mapee.jp/cpp/">
      <![CDATA[基底クラスparentを継承する派生クラスchild_a, child_bがあり、さらにchild_a, child_b両方を継承するgrandクラスの定義を考えてみます。 #include &lt;iostream&gt;   class...]]>
   </content>
</entry>
<entry>
   <title>抽象クラス</title>
   <link rel="alternate" type="text/html" href="http://www.mapee.jp/cpp/post_60.html" />
   <id>tag:www.mapee.jp,2008:/cpp//5.287</id>
   
   <published>2008-06-18T09:21:03Z</published>
   <updated>2008-06-18T09:49:09Z</updated>
   
   <summary>virtualキーワードで仮想関数を宣言し、必ず子クラスでオーバーライドしなければならない指定が可能です。 以下のように書くと、必ず子クラスでのオーバーライドが必須となります。 class parent { public:     virt...</summary>
   <author>
      <name></name>
      
   </author>
         <category term="100)クラス" scheme="http://www.sixapart.com/ns/types#category" />
   
   
   <content type="html" xml:lang="ja" xml:base="http://www.mapee.jp/cpp/">
      virtualキーワードで仮想関数を宣言し、必ず子クラスでオーバーライドしなければならない指定が可能です。 以下のように書くと、必ず子クラスでのオーバーライドが必須となります。 class parent { public:     virt...
   </content>
</entry>
<entry>
   <title>仮想関数・virtualキーワード</title>
   <link rel="alternate" type="text/html" href="http://www.mapee.jp/cpp/virtual.html" />
   <id>tag:www.mapee.jp,2008:/cpp//5.286</id>
   
   <published>2008-06-18T08:28:05Z</published>
   <updated>2008-06-18T09:20:48Z</updated>
   
   <summary><![CDATA[virtualキーワードを指定することで、オーバーライドするメンバ関数を区別することができます。 例を見たほうが簡単です。 #include &lt;iostream&gt;   class parent { public:     voi...]]></summary>
   <author>
      <name></name>
      
   </author>
         <category term="100)クラス" scheme="http://www.sixapart.com/ns/types#category" />
   
   
   <content type="html" xml:lang="ja" xml:base="http://www.mapee.jp/cpp/">
      <![CDATA[virtualキーワードを指定することで、オーバーライドするメンバ関数を区別することができます。 例を見たほうが簡単です。 #include &lt;iostream&gt;   class parent { public:     voi...]]>
   </content>
</entry>

</feed>
