初歩的な質問だと思いますが、お願いします。
質問の内容はタイトル通りです。
現在あるプログラムのソースを参考にしてクラスについて学んでいる最中なのですが、ソースの一部にクラスをネストしている部分がありました。
こうすることで、どのような効果?があるのでしょうか。
一見friendクラスと同じなのかな…と思ったのですが、内部クラスから外部クラス?のメンバへアクセスできないようですし…。
それともオブジェクト指向の考え方から、ネストされたクラスがあるクラスに含まれていた方がいいだけで、直接的なつながりはないのでしょうか?
いまいちわからないので、質問させていただきました。
> ソースの一部にクラスをネストしている部分がありました。
> こうすることで、どのような効果?があるのでしょうか。
スコープを限定できます。
class Me {
class tool { ... };
};
class You {
class tool { ... };
};
なんてとき、Me::toolとYou::toolは別物で名前がカブらない。
回答ありがとうございます。
なるほど、スコープの問題だったのですね。
ちなみに、
class A {
class B{ ... };
};
と記述した場合と、
class A {
...
};
class B {
...
};
のように記述した場合に、スコープ以外の点での違いはないのでしょうか?
「解決」にして質問してすみません(汗
ミスでした。
もう少し自分でクラスのネストについていろいろ調べてみます。
private や protected なクラスが作れます。
内部クラスは、外部クラスと関係があり、一緒に使うものであることを示すことができるとか。
private なクラスならば、外部クラスの実装のためだけに用意することができますね。
なるほど、内部クラスとはそういうものなのですね。
dairygoodsさん シャノンさん、ありがとうございます。
ツイート | ![]() |