0
class cl {
public:
cl(int i) { val=i; }
int val;
int double_val() { return val+val; }
};
変数valは、それを割り当てるコンストラクタの後に宣言されます。しかし、このコードはまだ動作します。 'val'はコンストラクタの範囲外ですか?C++のスコープ内部
class cl {
public:
cl(int i) { val=i; }
int val;
int double_val() { return val+val; }
};
変数valは、それを割り当てるコンストラクタの後に宣言されます。しかし、このコードはまだ動作します。 'val'はコンストラクタの範囲外ですか?C++のスコープ内部
クラスの完全な定義は、メンバーが利用できます。したがって、実際にはval
がコンストラクタの実装より前に宣言されます。
@Downvoter、downvoteの理由は何ですか?この質問には、明確で特定の質問に加えて、[mcve]が含まれています。下降声の理由が「研究なし」だった場合は、重複を示唆することができました。 –