Article View: japan.comp.lang.visual-c++
Article #15Re: 特定のクラスだけに特定の操作を
From: Yuki Shiino
Date: Fri, 05 May 2000 00:00
Date: Fri, 05 May 2000 00:00
33 lines
2086 bytes
2086 bytes
椎野です。 鶴田さんの記事<8esare$434$1@nwms2.odn.ne.jp>から > > 特定のクラスAにだけは公開したい操作Xがあります。 > > しかし、その他のクラスB,Cには非公開としたいです。 > > しかも、クラスAに公開したいのはXだけなので、他の操作を公開したく > > ありません。 > > 操作Xを基底クラスXとして作成し、friend宣言でクラスAを指定、 > 操作X以外は継承を用いて作成するのはどうでしょうか? 操作Xを基底クラスのprotectedメンバとして、これをクラスAで 継承します。操作X以外は鶴田さんと同じ様にやはり継承を使います。 (つまりfriendの代わりにprotectedを使うだけ。) 鶴田さんの方法との違いは、 ・クラスA以外にも操作Xを利用できるクラスを後から増やせる。 ・クラスAの派生クラスも操作Xを利用できる。 といったところでしょうか。 特定の(限定された)クラスにアクセス特権を認める方法は、多分 protectedとfriendしかない筈です。(そしてfriendの方が厳しい。) どちらが良いかはケースバイケースです。 (もっと単純にクラスAをフレンドクラスにする方法もあるけど。ど うしても操作X「だけ」にと拘ると難しいかも。) もし宜しければ参考までにどの様な状況なのか教えて頂きたいです。 操作Xを含むクラスとクラスAとはどんな関係なのかとか。 (公開出来ない事情があるのなら、無理には訊きません。) -- 椎野 裕樹 <yuki@cds.ne.jp>
Technical Details
Message-ID:
<8esig5$73p$1@news.cds.ne.jp>Path:
arc1-ca.pugleaf.net!unknown!not-for-mailReferences:
<8es357$jup$1@pin2.tky.plala.or.jp> <8esare$434$1@nwms2.odn.ne.jp>Show Full Headers
Complete Article Headers
X-Google-Language: Japanese,JIS X-Google-Thread: 10a2c7,4de5e25cb378a14 X-Google-Attributes: gid10a2c7,public X-Google-Thread: f71b3,4de5e25cb378a14 X-Google-Attributes: gidf71b3,public From: Yuki Shiino <yuki@cds.ne.jp> Subject: Re: 特定のクラスだけに特定の操作を Date: 2000/05/05 Message-ID: <8esig5$73p$1@news.cds.ne.jp> X-Deja-AN: 619271820 References: <8es357$jup$1@pin2.tky.plala.or.jp> <8esare$434$1@nwms2.odn.ne.jp> Content-Type: text/plain; charset=iso-2022-jp Organization: none Mime-Version: 1.0 Newsgroups: japan.comp.lang.visual-c++,fj.comp.lang.c++