##質問概要(ここだけ読んでも内容掴めないかも.....)
クラスのメンバをconst に変えたものとそうでない物を、typedef で区別したいけど、そんな方法ありますか?
##質問詳細
例えば、以下のように入れ子状のクラスがあったとします。
C++
1class OuterClass 2{ 3 private: 4 class InnerClass 5 { 6 private: 7 int* pointer; 8 public: 9 InnerClass(/* args */); 10 ~InnerClass(); 11 }; 12 13 public: 14 typedef InnerClass Class1; //<-ココ 15 16 17 OuterClass(/* args */); 18 ~OuterClass(); 19}; 20
"<-ココ" で示されてるように、InnerClass
はtypedef を使って、OuterClass
内で名前変更されています。
ここで私が解決したい問題が何かというと、InnerClass
のメンバの int* pointer
を int* const pointer
(コンストポインタ)にしたInnerClass
を別名でOuterClass
内で定義したいが、その方法がわからない(そもそもそれって可能なの?)ということです。
つまり、最終的にはOuterClass
は以下のようにしたいのですが、それは可能ですか??
C++
1class OuterClass 2{ 3 private: 4 class InnerClass 5 { 6 private: 7 int* pointer; 8 public: 9 InnerClass(/* args */); 10 ~InnerClass(); 11 }; 12 13 public: 14 typedef InnerClass Class1; //<-ココ 15 typedef 〇〇 Class2 // <-Class2 は InnnerClass のメンバがint* const pointer になったものを示す。 16 17 OuterClass(/* args */); 18 ~OuterClass(); 19}; 20
ちなみに、別の InnerClass2
などを作らずにこれを実現したいです.....
つまり、OuterClass の内部クラスはInnerClass のみの状態で、メンバがint* pointer
か int* const pointer
かで名前を分けたいのですが、その方法はありませんか... ということです。
質問内容伝わりましたか...>< ??
お力をお貸しください
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/02/07 05:41
2021/02/09 05:06