2017-12-19 6 views
0
class cl { 
    public: 
     cl(int i) { val=i; } 
     int val; 
     int double_val() { return val+val; } 
}; 

変数valは、それを割り当てるコンストラクタの後に宣言されます。しかし、このコードはまだ動作します。 'val'はコンストラクタの範囲外ですか?C++のスコープ内部

+0

@Downvoter、downvoteの理由は何ですか?この質問には、明確で特定の質問に加えて、[mcve]が含まれています。下降声の理由が「研究なし」だった場合は、重複を示唆することができました。 –

答えて

4

クラスの完全な定義は、メンバーが利用できます。したがって、実際にはvalがコンストラクタの実装より前に宣言されます。

関連する問題