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;
登録:
コメントの投稿 (Atom)
0 件のコメント:
コメントを投稿