<?xml version="1.0" encoding="UTF-8" ?><rdf:RDF 
  xmlns="http://purl.org/rss/1.0/"
  xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
  xmlns:atom="http://www.w3.org/2005/Atom"
  xmlns:dc="http://purl.org/dc/elements/1.1/"
  xml:lang="ja">
  <channel rdf:about="http://w.atwiki.jp/ototoinoare/">
    <title>一昨日のプログラミング</title>
    <link>http://w.atwiki.jp/ototoinoare/</link>
    <atom:link href="https://w.atwiki.jp/ototoinoare/rss10.xml" rel="self" type="application/rss+xml" />
    <atom:link rel="hub" href="https://pubsubhubbub.appspot.com" />
    <description>一昨日のプログラミング</description>

    <dc:language>ja</dc:language>
    <dc:date>2011-12-09T03:26:08+09:00</dc:date>
    <utime>1323368768</utime>

    <items>
      <rdf:Seq>
                <rdf:li rdf:resource="https://w.atwiki.jp/ototoinoare/pages/13.html" />
                <rdf:li rdf:resource="https://w.atwiki.jp/ototoinoare/pages/14.html" />
                <rdf:li rdf:resource="https://w.atwiki.jp/ototoinoare/pages/3.html" />
                <rdf:li rdf:resource="https://w.atwiki.jp/ototoinoare/pages/2.html" />
                <rdf:li rdf:resource="https://w.atwiki.jp/ototoinoare/pages/15.html" />
                <rdf:li rdf:resource="https://w.atwiki.jp/ototoinoare/pages/4.html" />
                <rdf:li rdf:resource="https://w.atwiki.jp/ototoinoare/pages/5.html" />
                <rdf:li rdf:resource="https://w.atwiki.jp/ototoinoare/pages/6.html" />
                <rdf:li rdf:resource="https://w.atwiki.jp/ototoinoare/pages/7.html" />
                <rdf:li rdf:resource="https://w.atwiki.jp/ototoinoare/pages/8.html" />
              </rdf:Seq>
    </items>
	
		
    
  </channel>
    <item rdf:about="https://w.atwiki.jp/ototoinoare/pages/13.html">
    <title>トップページ</title>
    <link>https://w.atwiki.jp/ototoinoare/pages/13.html</link>
    <description>
      **ようこそ
　無償の開発環境 Visual Studio 2010 Express を使って何かやっていきたいと思います。J2EE の経験は一応あるんで何かの役に立つかもと思ってます。
　ということで、窓の杜になんか上げるのを目標にのんびりやって行こうと思います。１日１～２時間位を目安にしてるんで、目標達成が何時になるかわかりませんが、、、

-プロジェクト名
未定

-目標
　とは言いつつ実は最短で何かを完成させるというのを目標にしています。

-方針
　プロジェクト（プロジェクト名は現在未定）の進め方なんですが、今考えてるのは『大事なこと＆出来そうなことからやる。』です。

-作業内容
　最短で完成させる為に次に何をやれば良いかとか、作業中に思いついたことなどは下の TODOリストに随時追加していきます。その時作業内容と同時に作業完了までの予想時間（見積もり）も記入します。

-保留
　ややこしそうまたは作業完了予想時間を超えそうなものはどんどん飛ばしていきます。諦めるか後に回すかはその場で考えずにとりあえず『保留』ということにしておきます。

-実績
　作業が終了したら作業完了までに掛かった時間（実績）を記入します。また作業内容のリンクにその成果を貼っておきます。

-まとめ
　まとめって言っても特に何も無いんですが、、、
　これは後にフリーソフト界の〇〇と呼ばれるであろう一昨日のアレのドキュメントになるかもです。


**開発環境構築
-Visual Studio 2010 Express 
　Visual Studio 2010 Express のインストールは、[[Visual C++ 2010 Express インストール メモ&gt;http://cvwww.ee.ous.ac.jp/vc10inst.html]] に丁寧に説明されているので参考にさせて頂きました。

＃私の場合インストールの途中でＰＣが固まったんですが、再起動して修復インストールで一応上手く入ったようです。

-Meadow
　Emacs 系のエディタ
　使いこなすには分厚い本を一冊くらいは読まないとアレかもしれませんが、これからＰＣを何年も使い続ける予定がある方にはオススメします。
メールの読み書きから某掲示板の読み書きまで、文字を入力するということならこのアプリ一つで何でも出来ます。

-Xkeymacs
　Windows 全般で Emacs のキーバインディングを使いたいならコレ

**最初のプログラム
-Hello World!
　普通最初のプログラムと言ったらこれですよね。
　同じく [[Visual C++ 2010 Express プログラミング入門&gt;http://cvwww.ee.ous.ac.jp/vc10prog.html]] を参考にさせて頂きました。

**画面を HTML で作れるか調査（保留）
-HTML 画面
　画面を HTML で作れたら楽なので、プロトタイプとしては理想的なんですが。さて簡単に出来るかちょっと調べてみましょう。

※ちょっとネットで調べてみたんですが、すぐには見つからなかったので一旦保留

**TODO
|CENTER:完/未|CENTER:予/実|CENTER:作業内容|
|完|1H|開発環境の構築|
|完|1H|「Hello World!」作成|
|保|1H|画面を HTML で作れるか調査|
|保|1H|[[Windows プログラムの最初の一歩]]|
|保|3H|[[C++の文法これだけは]]|
|未|3H|オブジェクト指向はね？技術とかそんな次元の話じゃないんだよ。考え方そのものなんだよ。|

//&amp;link_toppage(text=ここを編集)    </description>
    <dc:date>2011-12-09T03:26:08+09:00</dc:date>
    <utime>1323368768</utime>
  </item>
    <item rdf:about="https://w.atwiki.jp/ototoinoare/pages/14.html">
    <title>C++の文法これだけは</title>
    <link>https://w.atwiki.jp/ototoinoare/pages/14.html</link>
    <description>
      **クラスとオブジェクト
とりあえず動くC++風『Hello World!』

 #include &lt;iostream&gt;
 
 /*******************************/
 /* HelloWindows クラスの宣言
 /*******************************/
 class HelloWindows {
 public:
 	void run();
 };
 
 /*******************************/
 /* main
 /*******************************/
 void main() {
 	HelloWindows* obj = new HelloWindows();
 	obj-&gt;run();
 	delete obj;
 }
 
 /*******************************/
 /* HelloWindows クラスの実装
 /*******************************/
 void HelloWindows::run() {
 	std::cout &lt;&lt; &quot;Hello Windows!&quot; &lt;&lt; std::endl;
 }

　クラスの宣言とか定義はこういう感じですか。クラスのインスタンスを生成してオブジェクトを作るわけですがこういう感じですね。
　ここでポイントは delete ですね。C++ にはガベージコレクションがないので、自分で delete 演算子を使ってデストラクタを呼び出さないといけないようです。
　何でもないクラスのインスタンスがとんでもないくらいメモリを食うか分からないので、使い終わったらメモリを開放してやる癖をつけといた方が良さそうですね。特に Java 経験者は要注意です。

※サンプルコードは全部貼り付けてるとこれから大変なので、必要なとこだけにするかもしれません。
※あと、インデントはとりあえず８にしてます。私はあんまりインデントするコードを書かないんで、別に１６とか３２でも良いんですけどね。

＃コード見てて思ったんですが、delete ってあんまり美しくないですね。ガベージコレクション考えた人すごいわ。

**多態性（ポリモルフィズム）
HelloWindows を継承（インヘリタンス）した HelloWindows2 を作ってみました。

 #include &lt;iostream&gt;
 
 /*******************************/
 /* HelloWindows クラスの宣言
 /*******************************/
 class HelloWindows {
 public:
 	void run();		// 普通に宣言
 	virtual void run2();	// virtual として宣言
 };
 
 /*******************************/
 /* HelloWindows2 クラスの宣言
 /*******************************/
 class HelloWindows2 : public HelloWindows {
 public:
 	void run();
 	void run2();
 };
 
 /*******************************/
 /* main
 /*******************************/
 void main() {
 	// 型は HelloWindows だが中身は HelloWindows2
 	HelloWindows* obj = new HelloWindows2();
 	obj-&gt;run();
 	obj-&gt;run2();
 	delete obj;
 }
 
 /*******************************/
 /* HelloWindows クラスの実装
 /*******************************/
 void HelloWindows::run() {
 	std::cout &lt;&lt; &quot;Hello Windows!&quot; &lt;&lt; std::endl;
 }
 
 void HelloWindows::run2() {
 	std::cout &lt;&lt; &quot;Hello Windows!!&quot; &lt;&lt; std::endl;
 }
 
 /*******************************/
 /* HelloWindows2 クラスの実装
 /*******************************/
 void HelloWindows2::run() {
 	std::cout &lt;&lt; &quot;Hello Windows2!&quot; &lt;&lt; std::endl;
 }
 
 void HelloWindows2::run2() {
 	std::cout &lt;&lt; &quot;Hello Windows2!!&quot; &lt;&lt; std::endl;
 }

以下は実行した結果なんですが、、、

Hello Windows!
Hello Windows2!!
続行するには何かキーを押してください . . .

　何でスーパークラスの run() 呼ばれるの？おかしいだろ！
　スーパークラスを実装する時点で将来自分は継承されるかもしれない。そしてこのメソッドはオーバーライドされるかもしれない。って知ってないと実装出来ないってこと？俺たちに預言者になれと？ｗ

＃心が折れそうだ、、、

　インターフェースには特別な書き方はないようです。宣言時にメソッドの後ろに「=0」を書くだけだそうです。
　ちょっと気になったのは、C++の文法で参考にさせて頂いただいてるサイトに「インタフェースクラスには仮想デストラクタを宣言しておくべきです。」という記述があったのですが、そこには理由がはっっきり書かれていなかったことです。今の時点ではこの記述は見なかったことにしましょう。

＃言語の文法やある言語固有の決まりごとのようなものは実はあまり大したことじゃないんです。というか私は正直でどうでも良いと思ってます。そんなことよりももっと大事なことがあるんです。将来このサイトを見てくださる方がいらっしゃるかもしれないので、その方の為にこっちは一旦保留して大事なことの話をちょっとしようと思います。    </description>
    <dc:date>2011-12-07T09:56:14+09:00</dc:date>
    <utime>1323219374</utime>
  </item>
    <item rdf:about="https://w.atwiki.jp/ototoinoare/pages/3.html">
    <title>右メニュー</title>
    <link>https://w.atwiki.jp/ototoinoare/pages/3.html</link>
    <description>
      **更新履歴
#recent(20)


&amp;link_editmenu2(text=ここを編集)    </description>
    <dc:date>2011-12-06T20:13:30+09:00</dc:date>
    <utime>1323170010</utime>
  </item>
    <item rdf:about="https://w.atwiki.jp/ototoinoare/pages/2.html">
    <title>一昨日のアレがプログラミングをはじめました。</title>
    <link>https://w.atwiki.jp/ototoinoare/pages/2.html</link>
    <description>
      **メニュー
-[[トップページ]]
-[[Windows プログラムの最初の一歩]]
-[[C++の文法これだけは]]

----

**リンク
-[[一昨日の日記&gt;&gt;http://d.hatena.ne.jp/ototoinoare/]]

//**更新履歴
//#recent(20)

&amp;link_editmenu(text=ここを編集)    </description>
    <dc:date>2011-12-06T20:13:11+09:00</dc:date>
    <utime>1323169991</utime>
  </item>
    <item rdf:about="https://w.atwiki.jp/ototoinoare/pages/15.html">
    <title>Windows プログラムの最初の一歩</title>
    <link>https://w.atwiki.jp/ototoinoare/pages/15.html</link>
    <description>
      **Windows プログラムの最初の一歩（保留）
-WinMain
Windows のプログラムを書こうとすると必ず出てくるキーワードが『WinMain』なんですが、これ『C++』と直接関係ないんですよね。C++の言語仕様に WinMain なんて（たぶん）ありません。

-C++
C++じゃないと Windows のプログラムは書けないと勘違いされる方も多いと思いますが、別にC言語でもWindows のプログラムは書けます。
では何故言語にC++を選んだのかと言うとオブジェクト指向で書きたかったからです。

-main
main 関数を使った C++ の Windows プログラムって普通無いと思いますが、私は逆に何故無いのか不思議でならないです。そもそもコンソールプログラムと Windows プログラムという分類の仕方っておかしくないですか？何なんですかそれ。皆さん誰かに洗脳されてません？
意味があるのかないのかは別として、私は main 関数を使って書いて行こうと思います。

-普通の Windows プログラム
細かい文法的なアレは置いといて、Windows プログラムというと普通以下のように書きたくありませんか？

 class HelloWindows {
     public void run() {
         ・・・
     }
 }
 
 void main() {
     new HelloWindows.run();
 }

当然上記のコードは文法が間違っていて全然動きません。といことで私の場合 C++ の文法を先にマスタしないといけないようです。    </description>
    <dc:date>2011-12-06T20:10:10+09:00</dc:date>
    <utime>1323169810</utime>
  </item>
    <item rdf:about="https://w.atwiki.jp/ototoinoare/pages/4.html">
    <title>プラグイン/ニュース</title>
    <link>https://w.atwiki.jp/ototoinoare/pages/4.html</link>
    <description>
      * ニュース
@wikiのwikiモードでは
 #news(興味のある単語)
と入力することで、あるキーワードに関連するニュース一覧を表示することができます
詳しくはこちらをご覧ください。
＝＞http://atwiki.jp/guide/17_174_ja.html


-----


たとえば、#news(wiki)と入力すると以下のように表示されます。


#news(wiki)
    </description>
    <dc:date>2011-12-05T21:55:59+09:00</dc:date>
    <utime>1323089759</utime>
  </item>
    <item rdf:about="https://w.atwiki.jp/ototoinoare/pages/5.html">
    <title>まとめサイト作成支援ツール</title>
    <link>https://w.atwiki.jp/ototoinoare/pages/5.html</link>
    <description>
      * まとめサイト作成支援ツールについて
@wikiには[[まとめサイト作成を支援するツール&gt;&gt;http://atwiki.jp/matome/]]があります。
また、
 #matome_list
と入力することで、注目の掲示板が一覧表示されます。

利用例）#matome_listと入力すると下記のように表示されます
#matome_list
    </description>
    <dc:date>2011-12-05T21:55:59+09:00</dc:date>
    <utime>1323089759</utime>
  </item>
    <item rdf:about="https://w.atwiki.jp/ototoinoare/pages/6.html">
    <title>プラグイン/編集履歴</title>
    <link>https://w.atwiki.jp/ototoinoare/pages/6.html</link>
    <description>
      * 更新履歴
@wikiのwikiモードでは
 #recent(数字)
と入力することで、wikiのページ更新履歴を表示することができます。
詳しくはこちらをご覧ください。
＝＞http://atwiki.jp/guide/17_117_ja.html


-----


たとえば、#recent(20)と入力すると以下のように表示されます。


#recent(20)
    </description>
    <dc:date>2011-12-05T21:55:59+09:00</dc:date>
    <utime>1323089759</utime>
  </item>
    <item rdf:about="https://w.atwiki.jp/ototoinoare/pages/7.html">
    <title>プラグイン/アーカイブ</title>
    <link>https://w.atwiki.jp/ototoinoare/pages/7.html</link>
    <description>
      * アーカイブ
@wikiのwikiモードでは
 #archive_log()
と入力することで、特定のウェブページを保存しておくことができます。
詳しくはこちらをご覧ください。
＝＞http://atwiki.jp/guide/25_171_ja.html


-----


たとえば、#archive_log()と入力すると以下のように表示されます。
保存したいURLとサイト名を入力して&quot;アーカイブログ&quot;をクリックしてみよう


#archive_log()
    </description>
    <dc:date>2011-12-05T21:55:59+09:00</dc:date>
    <utime>1323089759</utime>
  </item>
    <item rdf:about="https://w.atwiki.jp/ototoinoare/pages/8.html">
    <title>プラグイン/動画(Youtube)</title>
    <link>https://w.atwiki.jp/ototoinoare/pages/8.html</link>
    <description>
      * 動画(youtube)
@wikiのwikiモードでは
 #video(動画のURL)
と入力することで、動画を貼り付けることが出来ます。
詳しくはこちらをご覧ください。
＝＞http://atwiki.jp/guide/17_209_ja.html

また動画のURLはYoutubeのURLをご利用ください。
＝＞http://www.youtube.com/

-----


たとえば、#video(http://youtube.com/watch?v=kTV1CcS53JQ)と入力すると以下のように表示されます。


#video(http://youtube.com/watch?v=kTV1CcS53JQ)

    </description>
    <dc:date>2011-12-05T21:55:59+09:00</dc:date>
    <utime>1323089759</utime>
  </item>
  </rdf:RDF>
