C++における「型」と「クラス」の違い

オブジェクト指向プログラミングの解説書で、「クラスは型」「組込型はクラスの特殊形」などの記述を見ますけど、実際のプログラミングで分析や設計を行なっていると、少なくともC++においては、やはり「型」と「クラス」は微妙に違うものだと思われてくるのです。

もちろん僕はなにも、教科書が間違っているなどと言いたいわけではなく、たしかに、クラスが型である(あるいは型はクラスの特殊形である)という考え方は、理論的には正しいことはわかります。しかし、教科書の練習問題レベルではなく、実際の開発現場で、本当に型とクラスは同じ扱いがされているでしょうか。

僕の場合は、型とクラス(少なくとも自作クラス)は、同じ扱いはしていません。

たとえばcharやintなどの基本的な型は、

int num;
char c;

などのようにサクッと宣言して使いますよね。しかし、例えば「顧客」クラス CKokyaku というクラスがあったとして、実際のコーディングで

CKokyaku kyaku;

などとサクッと宣言する局面が、それほど多くあるでしょうか。
それよりもやはり、インスタンスを生成する際は、上記のような直接的な方法ではなく、

CKokyaku* pKyaku;
pKyaku = new CKokyaku;

のように、ポインタを使用するのが普通じゃないかと思うのです。

逆に、int型の変数をポインタでnewする、

int* ptr;
ptr = new int;

などとすることは、(教科書の練習問題以外では)まずあり得ないでしょう。

つまり、「型」と「クラス」は、理論的には同列に扱えるとしても、実際には下記のような「使われ方の違い」がある、とは考えられないでしょうか。

型:
実体は、直接宣言することにより生成される。
その実体は「変数」と呼ばれる。
「変数」は短期間に消滅する。

クラス:
実体生成はポインタを経由してnewにより行われる。
その実体は「インスタンス」と呼ばれる。
「インスタンス」は比較的長期間(しばしばプログラム終了まで)生存する。

いかがでしょうか。


カテゴリー: コンピュータ


青年団字幕演出システム

青年団は、演劇用の独自の字幕システムを所持しています。正式名称は「青年団字幕演出システム」です。これまで、青年団の海外公演で現地の言葉の字幕を出したり、外国のカンパニーを日本に招聘した際に日本語字幕を出したり、など、様々に活躍の機会を得ています。「青年団字幕演出システム」は、青年団が独自に開発した演劇字幕専用のアプリケーションで、市販ソフト(たとえばPowerPoint)のテンプレートの類ではありません。Visual C++ 開発環境で作られた、独立のアプリケーションです。僕自身も、主にインターフェース部分で開発に参加しました。

演劇の字幕公演では、最近では Microsoft PowerPoint が使用されることが多いようです。PowerPoint はご存じの人も多いと思いますが、プレゼンテーション用のソフトで、文字や画像を「スライド」という形に編集し、それを「投影する」というコンセプトのプログラムです。PowerPoint で字幕を実現しようとする場合、字幕原稿をまず全てスライド化しなければなりません。これは手間はかかるけど特殊な技術や知識はさほど必要としません。また、スライドを作り上げてしまえばオペレーションが非常に簡単です。このような手軽さから、PowerPoint は演劇公演の字幕用として多く使われているようです。

いっぽう、青年団字幕演出システムのコンセプトは、PowerPointのそれとは大きく異なっています。PowerPointはあくまで「スライド投影」を基本コンセプトとしていますので、スライド一枚一枚をレイアウトするのはかなり高度なことができます。しかし、スライド同士は基本的に関連がないため、たとえば、「全スライドの文字の大きさを2ポイント大きくする」といった変更は大変な手間がかかります。その点、青年団システムは、開演から終演までを一つの「字幕表示」としてとらえているので、文字の大きさをちょっと変えたり、表示位置をちょっとずらしたり、ということは一発で可能です。日本語字幕表示を、仮に現場で突然、「横書きから縦書きに変更して」、などという要請があっても短時間で対応することが可能です。もちろん、テキスト内容も簡単に修正できますので、現場で開場時刻ギリギリまでテキストの修正作業が行われることもしばしばです。

ハードウェア構成も独特です。青年団の字幕システムはPC1台だけでは実現できません。操作用と表示用、最低2台のPCが必要です。PowerPoint でも「外部モニタ」で使用するモードがありますが、青年団の字幕システムは、最初から操作用のPCと表示用のPCが独立しています。表示用のPCは単に字幕を表示するだけで、まったく操作されません。その表示は、ネットワークで接続された操作用のPCによってすべてコントロールされます。ネットワークには何台でもPCを接続でき、PC1は英語、PC2はフランス語、といったように、複数言語を同時に表示し、それらを1台のコントロールPCで制御することが可能です(昨秋の新国立劇場ロビーで上演された「東京ノート」ではこの技術が使われていた)。

もう一つ、青年団の字幕システムの優れている点は、表示ターゲットとなる言語を知らなくても(舞台上で発語される言語を聞き取ることができれば)オペレーションができる、ということです。これは、表示PCと操作PCが独立しているからできることで、操作用PCのウィンドウには、字幕表示の言語とは無関係に、オペレーターのネイティブ言語を表示させておくことができるのです。青年団は「東京ノート」を世界中で上演していますが、タイ語・ルーマニア語・フラマン語などの難解な言語の字幕でも軽々と実施できているのは、現地語に堪能なオペレーターを調達する必要が無いからです。字幕表示用のテキストと日本語台詞との対応付けさえできてしまえば、日本人スタッフが字幕操作をすることが可能となります。

その他、100ミリ秒単位で調整可能な自動表示、同時多発に対応した多重表示など、様々な機能が実装されています。青年団字幕演出システムは、演劇用の字幕システムとしては世界でもトップクラスのものと自負しています。

現在アゴラ劇場で開催中の「平田オリザ演劇展」でも、この字幕システムが使われている公演があります。「The Yalta Conference」(「ヤルタ会談」英語版)と、「Le moineau à la langue coupée」(「舌切り雀」フランス語版)です。映画や海外ドラマでの字幕に比べても遜色のない、スムーズな日本語字幕表示により、日本人観客でもごく自然に公演を楽しむことができるはずです。これらの演目、期待していた外国人の観客が、原発事故で皆帰国してしまったこともあって動員が伸び悩んでいるそうです。日本人の皆様にも是非ご来場いただきたいです。二演目とも、気軽に楽しめる、とても楽しい内容です。

The Yalta Conference 「ヤルタ会談」英語版
上演時間30分/出演:英語の堪能な日本人女優2人+アメリカ人女優1人
4月30日18:00、5月7日18:00、10日20:30。

Le moineau à la langue coupée 「舌切り雀」フランス語版
上演時間20分/出演:フランス語の堪能な日本人男優1人
5月8日13:00、11日20:30、15日17:30

チケット料金は、両演目とも 500円です。

カテゴリー: コンピュータ


ブログ化への経緯

このサイトをブログ化したいっていうのは、ずいぶん前から思ってました。「ブログを始める」って言うと、普通はどっかのプロバイダのサービスを利用するのが普通なんでしょうが、僕の場合は、元々を自宅サイトで運用している以上、ブログをやるなら、自分のサーバーにブログツールをインストールして運用したい、そこは譲れない、って思ってたんですね。

で、色々情報を調べてみると、ブログツールの中で「WordPress」っていうのが素晴らしく良くて、本当はそれにしたかったんです。でも「WordPress」は、図体がでかくて、かなり重いんですね。試しに一度インストールしてみたんだけど、うちのサーバーではまったく重くて使い物にならない。でも、「WordPress」のデフォルトのスキン(外観)はとっても綺麗なデザインで、ブログを始めるならこういう素敵なデザインにしたいな、って思ってたんです。

いっぽう、じゃあうちのサーバーみたいなしょぼいサーバーで、うまく動くブログツールは何だろう、って調べてみると、「ぶろぐん+」っていうのが、軽くて良さそうだ、ということで、結局それにしたわけです。でも、「ぶろぐん+」のデフォルトスキン(外観)は、僕は、どうしても好きになれなかった。

つまり、プログラムは「ぶろぐん+」で、スキンは、「WordPress」のものが使えれば理想だな、と、そう考えたわけです。そこで、「WordPress」のデフォルトスキンをダウンロードして、一方、「ぶろぐん+」のスキンの変数などを解析して、スキンのファイルをエディタでゴリゴリと編集しました。そして最終的に「ぶろぐん+」のプログラムを、「WordPress」のスキン(に限りなく近いもの)で動かす、ということをやった、その結果が、このサイトです。

まあ、その過程はとても大変だったけど、結果としてはまずまずの出来だと思います。でも、なにしろスキンをエディタでゴリゴリ編集したわけですから、これから何日、何週間、何ヶ月と運用する内に、何か不具合が出てくるかも知れません。

まあそういうのも、ちょっと楽しみだったりするんですが。


カテゴリー: コンピュータ