<?xml version="1.0" encoding="utf-8" ?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
<channel>
<title>蒼いホッチキス</title>
<link>https://ameblo.jp/nagizata/</link>
<atom:link href="https://rssblog.ameba.jp/nagizata/rss20.xml" rel="self" type="application/rss+xml" />
<atom:link rel="hub" href="http://pubsubhubbub.appspot.com" />
<description>入社１年目のレベル１ゲームプログラマーが日常と思ったことを書き綴るブログ</description>
<language>ja</language>
<item>
<title>５０日目、ポリモーフィズムと配列</title>
<description>
<![CDATA[ プログラムな話。<br><br>昨日、C++のコードを書いてた時に遭遇したエラーを書いておく。<br><br>例えば<br><blockquote style="background-color : #eeeeee;"><br><div style="margin-left : 30px;"><br>class A{<br>public:<br>　　A() : a( 1 ){}<br>　　virtual int get(){ return a; }<br><br>private:<br>　　int a;<br>};<br><br>class B{<br>public:<br>　　B() : b( 2 ){}<br>　　int get(){ return b; }<br><br>private:<br>　　int b;<br>};<br><br>int main()<br>{<br>　　A* p = 0;<br>　　p = new B;<br><br>　　count &lt;&lt; p-&gt;get() &lt;&lt; endl;　　// 出力は 2 となる、はず<br><br>　　delete p;<br>　　return 0;<br>}<br></div><br></blockquote><br><br>これはまあいいおｋ。<br>形としてはメンバ変数を持つ具象Ｂが抽象を持ったＡを継承する典型的なポリモーフィズム。<br><br>問題は以下にて発生する。<br>変化するのはクラス自体ではなく、main関数。<br><br><blockquote style="background-color : #eeeeee;"><br><div style="margin-left : 30px;"><br>int main()<br>{<br>　　A* p = new B[ 10 ];<br><br>　　for( int i = 0; i &lt; 10; ++i ){<br>　　　　cout &lt;&lt; p[ i ]-&gt;get() &lt;&lt; endl;<br>　　}<br><br>　　delete [] p;<br>　　return 0;<br>}<br></div><br></blockquote><br><br>個人的にはここで２が縦に並ぶ感じで行ってほしいところだがこれにはうまくいかない場合があり<br>アクセスエラーとかが起きるかもしれない。ちなみに自分の場合は２つめの配列のgetメソッドにアクセスした際にエラーが発生した。<br>内容をみると、仮想関数テーブルに何も入ってなかった。<br><br>なぜこんなエラーが発生するか。<br>Ｂにメンバ変数があるがためにＡとＢのサイズが異なる。<br>つまりＡの( p + 1 )とＢの( p + 1 )が違うのでここで差が発生してちゃんとした場所にアクセスしてくれなくなってしまうのだ。<br><br>ちなみにこれ、試しに上のプログラムでやってみたらすんなり表示できてしまった。<br>Ｂのメンバ変数を配列にして大きくしたらうまく？エラーが起きた。<br><br>といっても最初の組んでいた時のプログラムでもfloatを１つ増やしただけだったし<br>少なくともこれはやってはいけないかき方という書き方だ。<br>エラーが起きなくてもそれは運が良かったと考えた方が自然。<br>（むしろ危険が眠る事になるのでアンラッキーかも）<br><br><br>結論として、ポリモーフィズムと配列は混ぜちゃいけません！<br><br><br>絶対これいままで１回は組んでたと思うんだよな……<br>今回のことでむしろ今後の危険性を排除できたわけだからよかったと思う。<br>
]]>
</description>
<link>https://ameblo.jp/nagizata/entry-10899108256.html</link>
<pubDate>Sun, 22 May 2011 00:04:21 +0900</pubDate>
</item>
<item>
<title>４５日目、寝る</title>
<description>
<![CDATA[ <div align="center"><a href="http://stat.ameba.jp/user_images/20110517/04/nagizata/be/e2/p/o0640048011233101117.png"><img src="https://stat.ameba.jp/user_images/20110517/04/nagizata/be/e2/p/t02200165_0640048011233101117.png" alt="蒼いホッチキス"></a></div><br>完璧な３日坊主だった。<br>いや、４日目も更新しようとしたけど、もう日またいじゃってたしじゃあもういっか、みたいな。<br>気付けばもう５月中ば過ぎてるよ……<br><br>さて４５－３で４２日の間があいてその間にＧＷがあったり、帰って友人と酒を飲んだり<br>その帰りに絵師１００人展など行ってた。<br><br>帰りは一緒にこっち側にくる友人がいたので一緒に来たけど、絵師１００人展、入場料１０００円高いよな……いや行くけどさっていう話をしてて行ってみたら思った以上の充実感。<br><br>おかげで写真の図録（２５００円）やクリアポスター（１０００円）など買っちゃったり。<br>当初の予定じゃこんなはずじゃなかった……orz<br><br>やっぱ絵がかけるっていうのはいいよね。<br>個人的野望としてはいつか同人ゲームとか出してみたいよなぁとか（技術的壁は置いといて）思ってるけどやっぱりそこで出てくる問題はグラフィック面だったり。<br>絵がかけるってだけで夢が広がリング。<br><br>そんなことを思いながら見てたり、見ていなかったり。<br>知ってる絵師さんとかやっぱテンション上がるよね、うん。<br><br>絵描ける人ってどうやって絵をかけるようになったんだろ、やっぱ毎日描いてるのかなぁ。<br>絵はへたってわけじゃないけどうまくないっていうか、手とか書けない。<br>なんなんだろうな、あれ。なんでみんなスって書くことできるんだろう、不思議だ。<br><br><br>なんか久々に書いてたら４時回ってる。早く寝よう。今日遅刻しちゃったし（´・ω・｀）<br><br>最近、家じゃプログラミング触ってないや。<br>プログラムは打たないと力が付かないからやんなきゃなんだけど、休みの日は基本寝てるからなぁ。<br><br>おやすみなさい。<br><br>
]]>
</description>
<link>https://ameblo.jp/nagizata/entry-10894110639.html</link>
<pubDate>Tue, 17 May 2011 04:02:41 +0900</pubDate>
</item>
<item>
<title>３日目、名刺入れ</title>
<description>
<![CDATA[ <div align="center"><a href="http://stat.ameba.jp/user_images/20110403/23/nagizata/4f/72/p/o0800060011144008471.png"><img src="https://stat.ameba.jp/user_images/20110403/23/nagizata/4f/72/p/t02200165_0800060011144008471.png" alt="蒼いホッチキス" border="0"></a></div><br><br>昨日、ほしい名刺入れがあるお店が夜７時にはしまっていたがために買えなかったので<br>今日改めて買いに。<br><br>Qurli（クルリ）というなかなか名刺入れとしては変わった感じ（なのかな？）で購入。<br>入ってる名刺を指でスライドさせることでスマートに取り出すことができる。<br><br>上の方から差し込んで、中ではバネで名刺を止めてるのだけれど、サンプルとして置いてあった<br>ものは普通にはさめたけど、手元のはバネが弱いんだろうか、１枚じゃ挟めなくて上から落ちてきちゃう。<br><br>名刺はそれなりに入れるので普段は特に影響ないけどちょっと残念だった。<br><br><br><br>さて、プログラミングの話だけれども結局昨日はポップアップ開いて閉じて、新たにまたウィンドウを<br>開くということをして、Kinect( openNI )に関しては一切やらずに眠くて寝てしまった<br><br>で、やってて思ったのだけれど今まで自分はメッセージプロシージャにて<br>エスケープキー押された時はPostQuitMessage( 0 )で終わらせてたんだけど<br>（学校のサンプルソースがそうだったので）<br>これだとWM_CLOSEいかなくてDestroyWindowが実行されてないんじゃないかと思った。<br><br>ゲームプログラムの場合、メインループは常に回しているので<br>while( msg.message != WM_QUIT )<br>って感じでその中でPeekMessageをよんでたけど、PostQuitMessage( 0 )はWM_QUITを宣言するので<br>そうするとそのまま終わっちゃうんですよね……<br><br>自分の思ってる通りとすれば、ウィンドウ自体がゾンビ状態になるような気がするんだけど<br>実際のところはいったいどうなんだろ……いままで特に変な感じしてなかったからもしかしたら<br>大丈夫じゃないかと思ってしまったり。<br><br>なんだかそこらへんがよくわかってない……<br><br>自分の中で思ってる流れは<br>普通「×」が押されれば、DefWindowProcからWM_CLOSEでそこでDestroyWindow→WM_DESTROYで<br>そこでPostQuitMessage(0)でエンドって感じだと思う、そうするとやっぱダメだよな。<br><br>つまりそもそもPostQuitMessage自体、WM_DESTROY内でしか呼んじゃダメってことか。<br>（調べてるときに、そんな事がどこかのサイトに書いてあった）<br><br>とりあえずそこらへんがなんかイヤな感じなので、現在はエスケープおされたらWM_CLOSEを<br>呼んでやるということで、自分の中で落ち着く感じになった。それかDestoryWindowを呼んでやるとか。<br><br>これきっと基本中の基本なんだろうな……<br>普段、メッセージプロシージャとか触らないから気付かなかった
]]>
</description>
<link>https://ameblo.jp/nagizata/entry-10850635893.html</link>
<pubDate>Sun, 03 Apr 2011 23:27:22 +0900</pubDate>
</item>
<item>
<title>２日目、インデックス</title>
<description>
<![CDATA[ <div align="center"><a href="http://stat.ameba.jp/user_images/20110402/22/nagizata/99/61/p/o0800060011141736797.png"><img src="https://stat.ameba.jp/user_images/20110402/22/nagizata/99/61/p/t02200165_0800060011141736797.png" alt="蒼いホッチキス" border="0"></a></div><br><br>今日は１２時半ごろに起床、休みの日にしては早起きなんじゃない？<br>（寝る時間に依存するけど）<br><br>特になにをするわけでもなくネット上を徘徊し、そういえば名刺入れ買ってこなきゃじゃね？<br>と思ってとりあえず川崎のLoftという雑貨へ。<br><br>行ったはいいけど、いいのがない（皮製品しかない）<br>探してるうちにシステム手帳のリフィルもないから買わなきゃと思ったもので<br>リフィル売場へ行くと、月別にリフィルの横に色別に段差が付いたインデックスがついてるやつがあるわけで。<br><br>あー、これ便利じゃんとか思って購入。<br><br><br>そして現在、リフィルさんようこそ我がシステム手帳へ！と入れたらこいつが曲者すぎる。<br><br>どうもこいつ、インデックス部分はページの幅＋αらしくこいつ入れると<br>ボールペンを差し込むと閉じてくれねえ！<br><br>インデックスよりボールペンのほうが大事、しかしこのまま捨てるのももったいない。<br>結局ハサミでチョキチョキ……インデックスがよくて買ったのにそこを切るとか。<br>なんかすごい意味ないっていうかどっちかというとマイナス方向……<br><br><br>名刺入れに関してはいろんなお店回って見て、よしあれにしよう！と決めた後に<br>その店に戻ったら既に閉店してたので、また明日改めて買ってくることにした。<br>（節電のためとかで早く終わってた）<br><br><br>そんな感じで現在。<br><br>今日はまだプログラムを触ってないわけだが、<br>とりあえず今日やりたいことは、ポップアップウィンドウ開いて閉じて、<br>新ウィンドウ開くみたいなこと（photoshop起動時みたいな感じ)なことと、<br>openNIを使ってKinectを使う際に使いやすくするためにクラスとかにまとめていこうかと思う。<br><br>できたら軽くこのブログにまとめてみようかな<br>そうすれば自分用のメモとして外からも見ることができるし
]]>
</description>
<link>https://ameblo.jp/nagizata/entry-10849531212.html</link>
<pubDate>Sat, 02 Apr 2011 22:09:18 +0900</pubDate>
</item>
<item>
<title>1日目、辞令</title>
<description>
<![CDATA[ <center><a href="http://stat.ameba.jp/user_images/20110401/23/nagizata/ae/83/p/o0800060011139752649.png"><img src="https://stat.ameba.jp/user_images/20110401/23/nagizata/ae/83/p/t02200165_0800060011139752649.png" alt="$ナギザタのブログ" border="0"></a></center><br><br>研修の４日間が終了し、晴れて本日入社式において辞令をいただき会社の仲間となった。<br>そして同時にプロのゲームプログラマー、ということに。<br><br>内定後、ちょくちょくバイトさせてもらってたけど、これから俺の社会人生の始まり。<br><br><br>入社後、懇談会などあったが、先輩方とうまく喋れてはいなかったと思う帰宅後。<br>（いや懇談会中でも思ってたたけどさ）<br>まあ来週に新歓という名の飲み会を開いてくれるらしいので、その時にはちゃんと喋れるといいな<br><br><br><br>それにしても今日は腹の具合いが最悪だった。<br>もう入社式の時なんてトイレ行きたくてしょうがなかった。<br>しかもお昼休憩で波が収まったので、なにを思ったがファミマの「俺のエクレア」を食べてさらに死亡。（なぜ食べた俺）<br>現在でも時折押し寄せる波……マジお尻痛い。<br><br><br><br>p.s.<br>このブログは出来れば毎日続けていきたいところだけどいつまで続くだろうか？
]]>
</description>
<link>https://ameblo.jp/nagizata/entry-10848575191.html</link>
<pubDate>Fri, 01 Apr 2011 23:20:45 +0900</pubDate>
</item>
</channel>
</rss>
