ページ 11

C++ staticについて質問です

Posted: 2013年5月22日(水) 19:51
by kinder
クラスaとクラスbの両方でstatic int aという変数を用意した場合、クラスaの変数aとクラスbの変数aは常に同じ値になる・・・という解釈で良いのでしょうか・・。よくわからないので、できればわかりやすく解説いただけたら嬉しいです。

Re: C++ staticについて質問です

Posted: 2013年5月22日(水) 20:52
by YuO
なりません。というか,クラスaでメンバ名にaという名前は使えません。

コード:

class A
{
    static int a;
};
class B
{
    static int a;
};
int A::a;
int B::a;
について,A::aとB::aは完全に別物です。
クラスはスコープを作ります。
異なるスコープ内であれば,見た目上同一の識別子であっても,実際には異なる識別子になります。
この点で言えば,

コード:

{
    int a;
}
{
    int a;
}
のふたつのaが別の識別子であり,別の変数であることと同じです。

Re: C++ staticについて質問です

Posted: 2013年5月22日(水) 21:51
by kinder
まったくの別物なのですね・・。
ありがとうございました!