エンジニアコラム

kobayashi_yoshichika 小林 佳明

2 0

こっそり学ぶC++(前編)

2017.07.24

こっそり学ぶC++(前編)

「C言語」からちょっと距離を取ってきたあなたに贈る超入門

こんにちは。キクスイのソフトウェア「Wavyシリーズ」の主任開発者、小林です。
今回は「Wavyシリーズ」からちょっと離れて、それを作る道具(プログラミング)のお話をしたいと思います。

当コラムの想定読者は、副題にある通り「C言語からちょっと距離を取ってきた」人です。
時々Visual Basic程度は使うことがある、または昔BASICを使ってたけど、その後の言語進化になんとなく乗り遅れた、という感じの人です。
今は、便利な既存のアプリも多く、一から仕事道具をプログラムする必要はあまりないのかもしれませんが、簡単な反復作業なのだけど、それに見合ういいツールが見つからない時もあります。そういったときに、サクッと自分でプログラムが作れると、便利ですしカッコいいですよね。

ということで、タイトルは「こっそり学ぶC++」。しかしぶっちゃっけ、本気でC++を解説しようとすると結構大変です。なので当コラムの目的を「C言語の前で足踏みしている人の背中を押す」ことにしました。だからこれを読んでもC言語の理解には至らないでしょう(笑)。しかし、これから紹介する手順通りに試してみていただいて、「なんか俺でも出来そうな気がする・・・」と思っていただければミッション成功です。

ところでなぜC++?

本編に入る前に、「なぜC++か?」のお話をします。おそらく聞きなれない用語が出てきますが、後々(本腰入れて勉強すると)わかるようになるかと思いますので、まずは付いてきてくださいね。

キクスイのソフトウェア「Wavyシリーズ」は、マイクロソフト社の「Visual Studio」で開発をおこなっています。言語はC++(シープラプラ、またはシープラ)で、クラスライブラリとしてMFCを使用しています。

Cから派生した言語のトレンドとしては、「C#(シーシャープ)」が近年人気なのかと思いますが、ハイパフォーマンスと高信頼性という面においては、やはりプログラムが直接メモリ上に展開される「ネイティブコード」であるC++に軍配が上がるかと思っています。ちなみにC#は「マネージコード」と呼ばれ、プログラムはメモリ管理プログラム(ガベージコレクション)が作る仮想的メモリ空間に展開されるため、(原理的に)パフォーマンスはネイティブコードに劣るかと思います。

自動車に例えるなら、ネイティブはバリバリのマニュアル車、マネージは電子制御されたオートマ車です。マニュアル車は扱いに面倒な面がある一方、自分の意図通りにエンジンを極限まで操作できる可能性(楽しさ)があります。ただしそれには知識や腕が必要です。一方マネージは、ドライバーには操作が優しい反面、マニュアル車のような自由度はありません。ほとんどが「機械におまかせ」なのですね。それは「楽チン」とも言えますが、何かトラブルがあったとき、「おまかせ」している部分の中身がわからないので、手の出しようがありません。
ネイティブは「F1のレーシングカー」、マネージは「市販のオートマ車」くらいの違いがあるように思えます。

取っつきはC#の方がいいのでしょうが、C#から入ってしまうと、後々壁に当たった時にどうにもならない可能性があります。一方C++から入った場合は、後々つらくなったらC#に乗り換えるのはアリです。でもその逆はかなり厳しいんじゃないかなと。 ということで、これからC++の入り口へご案内したいと思います。

本サイトの閲覧には会員登録(無料)が必要です。

会員登録はこちら

×