• 締切済み

enumの継承?

C++で、クラス内でenumの宣言ができると思うのですが、 (1)継承した先のクラスからはどのように見えるのでしょうか? (2)そもそもenumに対してpublic等の指定は可能ですか? 本をいろいろ調べてみましたが、該当する記述がなかったため、ご回答をよろしくお願いします。

  • tk35
  • お礼率1% (2/108)

みんなの回答

  • KoHal
  • ベストアンサー率60% (110/181)
回答No.1

(1)について  そのままenum型およびその値として見えます。  何を疑問に感じていらっしゃるのでしょうか? (2)について  可能です。  publicにした場合、当然ながら、派生関係に無いクラスからでも見えますね。 老婆心ながら一言。 もし実際にコーディングする上で上手くいかない場面があったのなら、その点を具体的に質問してください。 今回の質問からはこれ以上の回答は書けません。

関連するQ&A

  • enumについて

    enumでタグを指定しないで、宣言することは可能でしょうか?? もし可能だあれば、どのように宣言し、参照する際はどのようになるのでしょうか?

  • VB.NETでのEnumの使用について

    こんにちは、いつも拝見させて頂いております。 今回は、VB.NETのEnumについて教えて頂ければと思い、投稿しました。 VB.NETでEnum定義をしているのですが、クラス内のEnumとして定義 しているのですが、そのクラスのインスタンスを生成しなくても クラス内のEnum定義が参照できます。 クラスのインスタンスを生成していないのであれば、そのクラス内に あるEnum定義も参照できないのではないかと考えていたのですが、 参照できたので、なぜなのかがわかりません。 自分なりに色々と調べたのですが、EnumがSystem.Enumを継承している というのはわかりましたが、それがなぜ、クラスのインスタンスを生成 しないで、クラス内のEnum定義が参照できることになるのかがわかりません。 言語は、VB.NET2005です。 一応、ここの質問一覧も検索してみたのですが、該当しそうなもの が見当たらなかったので、ここに投稿させてもらいました。 お忙しいところ、申し訳ありませんが、ご教授ください。

  • javaによるenum型の扱い

    最近javaに親しんできたのですが、 Cとjavaにおける列挙型の扱いの違いに困っています。 javaにおけるenumはクラスであり、 各要素にメソッドを追加できることは分かったのですが…… 例えば、Cにおけるenumは確か、 typedef enum{EAST,SOUTH,WEST,NORTH} dirT; //定義 -------- (略) -------- dirT dir=EAST; //宣言・dirに要素EASTを格納 というようなことが出来たと思いますが、 javaはenumもクラスで、さらにnewでメモリ確保できないと聞きました。 つまり、このように列挙型の保持はできないということになるのでしょうか。 結局やりたいこととしては、このように「保持してある」列挙型に対して 条件分岐処理をしたいと考えています。 説明が上手くできず伝わりにくいかと思いますが、 どうか回答をお願いいたします。

    • ベストアンサー
    • Java
  • 継承について

    みなさま、どうかお知恵を貸して下さい。 javaを勉強中で、本を読みながら試しに動かしています。 現在、実現したい動作が実現可能かどうかを調べているところです。 そのため、環境やバージョン等は決まっておりません。 むしろ、実現可能な環境やバージョンがあれば、教えてください。 実現したい機能ーーーーーーーーーーーー 親クラスAにメンバーとメソッドを定義します。 Aを継承する子クラスBを定義します。 プログラム中で、A、Bのインスタンスを生成します。 そして、A、Bを継承するCのインスタンスを生成したいのです。 Cのメンバーやメソッドは、Bと同様のものです。 この場合、BのクラスからCのようなインスタンスを作成することは、可能なのでしょうか? ・・・Cを定義していないので、おそらく不可能かと思います。 やはりこういった場合、Aを継承しているBを継承するCクラスを定義しておく必要があると考えています。 では、Cを継承するD,Dを継承するE・・・というように、いくつ必要になるかわからない場合、最大数分継承したクラスを用意すべきでしょうか。 なぜ、そうしたいかというと、組織図のようなものを作成したいのですが、組織図を構成する人数は、ユーザーの任意としたいのです。 継承したクラスを用いれば、そのまま組織図の体系を表現できる気がしました。 質問が大雑把になってしまい、申し訳ないのですが、お力を貸していただければ幸いです。

    • ベストアンサー
    • Java
  • enumについて

    Java2 5.0で「enum」という列挙型が導入されてそうですが、 意味がよくわかりません。 今までは、interface等に (1) public final static int a = 0; public final static int b = 1; public final static int c = 2; などと、指定してきましたが、enumを使う事で、型に”安全”に なると書かれていますが、それもよくわかりません。 ”列挙値は、整数ではない”とも見たりしますが、(1)のよな使い方 をしなくなるのでしょうか。 いつどのような使い方するのか、どなたかご教示ください。 また、私のようなものに、合うようなサイトがあれば、教えてください。 宜しくお願いします。

  • 継承元と継承先での変数

    VB.NETで継承の勉強中です。 継承元と継承先で同じ意味合いの変数を使おうと思っています。 例えば、  ・継承元でkyuuyo(給与)をintegerで宣言  ・継承先Aで社員の給与を計算、継承先Bでアルバイトの給与を計算する   (残業やら手当やらの計算が必要)  ・継承元で、kyuuyoの支払処理をする この場合、継承先で宣言した変数で計算処理をしてから、 継承元のkyuuyoに代入したほうが良いのかなと思ったのですが その場合の変数名をどう付けるかで迷っています。 1.同じ名前を付けて、MyBase.kyuuyoとMe.kyuuyoで使い分ける 2.継承先の方を、tmpKyuuyoとする 3.motoKyuuyo、sakiKyuuyoみたいにする 4.そもそも、継承先で変数を宣言する必要が無い   (MyBase.kyuuyoで計算処理をしていく) 5.その他   (設計自体がおかしい) うちの会社はプログラムとかとは縁遠いので、規約みたいなものはありません。 私も他の仕事の傍らでやっている程度ですし、私以外にプログラム等を している人はいません。 今はどうやっても問題は無いのですが、私が辞めた後などの事を考えると 出来るだけ分かりやすくしておいた方が良いと思っているのですが どんな感じで実装するのが、VB.NET(oop)っぽいのか教えてください。 よろしくお願いします。

  • MessageBoxを継承したい

    C#2.0を使用しています。 MessageBoxを継承して拡張させたいと思い、MessageBoxExなるクラスで 次のように記述したのですが public class MessageBoxEx : System.Windows.Forms.MessageBox { } 型 'System.Windows.Forms.MessageBox' のコンストラクタが定義されていません。 というエラーが出てしまいます・・・ これはどういうことなのでしょうか? コンストラクタが定義されてないクラスは継承できないのでしょうか?

  • CSSの継承について

    CSSの定義時の継承方法についての質問です。 具体的には、便利な .clearfix というクラスを基に新しいコンテンツクラス、またはIDを作りたいのですが、その様な継承方法はありますか? 新しいクラスやIDでは、widthやbackgroundを指定したいのです。 C++風に書くと #my_contents : .clearfix {  width: 800px;  background: #FFF; } こんな感じになると思うのですが... よろしくお願いします。

    • ベストアンサー
    • HTML
  • java.util.ArrayListクラスの継承

    Java5年ぶりでちょっと新しい仕様について教えてください。。 java.util.ArrayListクラスを継承したクラスを作成しようと思っているのですが、継承後のクラスでも ArrayListChild<E> というような記述を有効にするには、一体どのような処理をすればよいのでしょうか。 そもそも、<E>とコンストラクタの後などに付けるこの仕様、なんて名前の仕様なんでしょうか。 よろしくお願いします。

    • ベストアンサー
    • Java
  • インターフェースを持つenum定数を引数にする方法

    jdk5を利用しています。 特定のIFを持つenum定数が、複数あります。 例.IHogeをもつenum定数 public enum Hoge implements IHoge { HOGE1(1),HOGE2(2),HOGE3(3); private int no = 0; private Hoge(int no) {this.no = no;} /* IFのMethod */ public int getNo(){return no ;} } enum定数を使用して、下のような処理を行っています。 class A { public void a(){ this.c.setClass(Hoge); for(IHoge iHoge : Hoge.values()) { this.setHogeX(iHoge.getNo()); } } public void b(){ //別のenum定数の処理 } } 現在、enum定数毎に、別々のメソッドを用意して対応していますが、 処理が、全く同じな為、一つのメソッドにしたいと思っています。 IFを持つenum定数を、引数にしたいのですが、どのように記述すればよいか分りません。 public void a(Class<? extends Enum> hoge) {} 上の宣言だと、enum定数は通りますが、IFは渡せません。 本などを調べましたが、見つける事が出来ませんでした。 ご存知の方、ご教授よろしくお願いいたします。

専門家に質問してみよう