2010-02-08

C++0x本:Derived classes

Derived classに対して、どのような訳語を用いるかという問題がある。

C++の規格上は、サブクラスとスーパークラスという用語を用いていない。これは、他ならぬBjarne Stroustrupが、サブとスーパーでは、どっちがどっちだか分かりにくいと考えたためだ。これは、私も同意する。SubのかわりにDerivedが、SuperのかわりにBaseが用いられる。これは非常に分かりやすい。

では、どのような訳語を用いるかという問題がある。サブクラス、スーパークラスなら、このままカタカナで表記すればいい。これは、サブやスーパーという言葉が、プログラミング言語を離れても、一般的に使われているからだ。しかし、Baseはともかく、Derivedの音訳は、一般的ではない。デライブドといわれても、さっぱりわからない。

今、日本に定着している一般的な訳語は、派生クラス(Derived Class)と、基底クラス(Base Class)である。私はこの内、Base Classについては、ベースクラスでもいいのではないかと考えている。ただし、統一性を考えると、基底クラスとするのがいいかしれない。

Multiple base classはどうか。実は、規格での正式名称は、これである。ただし、注記として、一般的に、multiple inheritanceという言葉も用いられていると書いてある。multiple inheritanceは、多重継承と呼ばれている。いまさらこれを、マルチプルインヘリタンスなどと呼ぶのは、全くもって現実的ではない。それならば、multiple base classも、多重ベースクラス、多重基底クラスとなる。これは、それほど問題にならないだろう。

Virtual functionには、仮想関数という訳語がある。これは、このまま使わざるを得ない。しかし、Pure virtual functionはどうか。これには、純粋仮想関数という訳語がある。これも、このまま使わざるを得ないだろう。個々の単語は、音訳しても通じる。しかし、バーチャル関数とか、ピュアバーチャル関数、ましてや、ピュアバーチャルファンクションなどという言葉は、残念ながら、受け入れられないだろう。

Abstract classの一般的な訳語は、抽象クラスである。これは、あまり好きではないが、このまま使わざるを得ない。アブストラクトという音訳は、消して不自然には聞こえないし、ある程度使われているとは思う。しかし、アブストラクト・クラスと表記するのは、私の感覚では、慣れない。

No comments: