2021年6月10日木曜日

[C++] スコープ"::"

こんにちは、針山散策を今日もほのぼのと行います。 今日は、C++についてメモします。 C言語、Java言語とやってきて、C++は意外とやってませんでした。 JavaとC++は機能としては一部分でも似ていると思うので 差分で考えると理解しやすいのかもしれません。 書籍を読んで、メモしておきます。 スコープには以下三種があるようです。 1. ローカルスコープ 2. 関数スコープ 3. ファイルスコープ "1. ローカルスコープ" ローカルなので、関数内部({}の中だけで生きる) で生きる変数です。ここから外に出たらお終い。 "2. 関数スコープ" https://jsprimer.net/basic/function-scope/ ローカルスコープと似ていますが、 関数に値を渡した場合、関数の定義では変数として取り扱います。 この変数のスコープが関数スコープということのようです。 3. ファイルスコープ グローバル変数のようです。 C言語で考えたほうがここは理解しやすいかもしれません。 int test= 123; class aaa{ public: test= 555; void test1(); } void main() { int test= 1,a,b; … a= ::test; // (*1) ここはどちらのtestでしょうか? b= aaa::test; } ::testと単体で出てきたときはグローバル変数として扱うようです。 なので、 a= 123 が入ります。 ::の前にクラス名が入るとクラス内のメソッドとして扱う。 これは変数、関数両方いけるということか。 なので、 b= 555 か、以下をメモしておきます 関数の場合、 aaa::test1() { } 変数の場合 aaa::test= 11;

0 件のコメント:

コメントを投稿