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:
Post a Comment
You can use some HTML elements, such as <b>, <i>, <a>, also, some characters need to be entity referenced such as <, > and & Your comment may need to be confirmed by blog author. Your comment will be published under GFDL 1.3 or later license with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts.