[C++] keyword: static
1. μ€λͺ
static ν€μλλ C++μμ νΉλ³ν νΉμ±μ λΆμ¬νλ λ° μ¬μ©νλ€.
staticμΌλ‘ μ μΈλ κ²λ€μ νλ‘κ·Έλ¨ μ€ν μκ° λμ ν λ²λ§ μ μ λ°μ΄ν° μμμ μ μ₯λκ³ , νλ‘κ·Έλ¨ μ€ν λμ μ μ§λλ€.
static ν€μλλ λ€μκ³Ό κ°μ΄ μ¬μ©λλ€.
1. ν¨μ λ΄μμ static λ³μ 2. static ν΄λμ€ κ°μ²΄ 3. ν΄λμ€ λ΄ static λ©€λ² λ³μ 4. ν΄λμ€ λ΄ static ν¨μ |
2. μμ
2.1) ν¨μ λ΄μμ static λ³μ
#include <iostream>
using namespace std;
void counter()
{
static int count = 0;
cout << count++ << " ";
}
int main()
{
for (int i = 0; i < 5; i++)
{
counter();
}
return 0;
}
0 1 2 3 4
ν¨μ λ΄μμ μ¬μ©ν static λ³μλ μ§μλ³μμ λ¬λ¦¬ stackμ μ μ₯λλ κ² μλλΌ μ μ λ°μ΄ν° μμμ μ μ₯λλ―λ‘ ν¨μκ° λλλ κ·Έ κ°μ΄ μ μ§λλ€.
2.2) static ν΄λμ€ κ°μ²΄
#include <iostream>
using namespace std;
class Abc
{
int i;
public:
Abc()
{
i = 0;
cout << "constructor" << endl;
}
~Abc()
{
cout << "destructor" << endl;
}
};
void f()
{
static Abc obj;
}
int main()
{
int x = 0;
if (x == 0)
{
f();
}
cout << "END" << endl;
return 0;
}
constructor
END
destructor
static ν€μλλ ν΄λμ€ κ°μ²΄μμλ λμΌνκ² μ μ©λλ€.
κ°μ²΄κ° μ μ λ°μ΄ν° μμμ μ μ₯λλ―λ‘ νλ‘κ·Έλ¨μ΄ λλ λκΉμ§ μ μ§λλ€.
μΌλ°μ μΈ κ°μ²΄μλ€λ©΄ f() ν¨μ νΈμΆμ΄ λλλ©΄ νκ΄΄μκ° νΈμΆλμν λ°, static κ°μ²΄μ΄λ―λ‘ νλ‘κ·Έλ¨ μ€ν λμ κ°μ²΄κ° μ μ§λκ³ νλ‘κ·Έλ¨μ΄ λλμΌ νκ΄΄λλ€.
2.3) ν΄λμ€ λ΄ static ν¨μ
#include <iostream>
using namespace std;
class X
{
public:
static int i;
X()
{
// construtor
};
};
int X::i = 1;
int main()
{
X obj;
cout << obj.i; // prints value of i
}
1
ν΄λμ€ λ΄λΆμ static λ©€λ² λ³μλ λͺ¨λ κ°μ²΄μμ 곡μ νλ€.
λν μμ±μμμ μ΄κΈ°ννμ§ μμΌλ©°, κ°μ²΄ μ΄κΈ°νμ μ’ μλμ§ μμ λͺ μμ μΌλ‘ ν΄λμ€ μΈλΆμμ κ°μ ν λΉνλ€.
μ΄κΈ°νλμ§ μμΌλ©΄ λ§μ»€μμ μ€λ₯κ° λ°μνλ€.
static λ©€λ² λ³μλ ν λ²λ§ μ μν μ μκ³ , λ€λ₯Έ κ°μΌλ‘λ μ¬ν λΉ λΆκ°λ₯νλ€.
2.4) ν΄λμ€ λ΄ static ν¨μ
#include <iostream>
using namespace std;
class X
{
public:
static void f()
{
cout << "f function call" << endl;
}
};
int main()
{
X::f(); // calling member function directly with class name
}
f function call
ν΄λμ€ λ΄ static ν¨μλ κ°κ°μ κ°μ²΄κ° μλ λͺ¨λ ν΄λμ€μμ μ¬μ©νλ€.
μΌλ°μ μΌλ‘ μ§μ ν¨μλ₯Ό νΈμΆνλ €λ©΄ .μ°μ°μλ₯Ό μ¬μ©νμ§λ§ ν΄λμ€ λ΄ static ν¨μλ₯Ό νΈμΆνλ €λ©΄ ::μ°μ°μλ₯Ό μ¬μ©ν΄μΌ νλ€.
μ΄λ° static ν¨μλ λ€λ₯Έ ν¨μμ μ κ·Όν μ μμΌλ©° staticμΌλ‘ μ μΈλ ν¨μμ λ³μμλ§ μ κ·Ό ν μ μλ€.
3. μ°Έκ³ λ° μΆμ²
https://www.studytonight.com/cpp/static-keyword.php
https://codingcoding.tistory.com/736
'Language > C++' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[C++] keyword: using (0) | 2020.07.23 |
---|---|
[C++] keyword: friend (0) | 2020.07.23 |
[C++] keyword: explicit (0) | 2020.07.22 |
[C++] keyword: inline, __inline, __forceinline (0) | 2020.07.22 |
[C++] keyword: const (0) | 2020.07.22 |
λκΈ
μ΄ κΈ κ³΅μ νκΈ°
-
ꡬλ
νκΈ°
ꡬλ νκΈ°
-
μΉ΄μΉ΄μ€ν‘
μΉ΄μΉ΄μ€ν‘
-
λΌμΈ
λΌμΈ
-
νΈμν°
νΈμν°
-
Facebook
Facebook
-
μΉ΄μΉ΄μ€μ€ν 리
μΉ΄μΉ΄μ€μ€ν 리
-
λ°΄λ
λ°΄λ
-
λ€μ΄λ² λΈλ‘κ·Έ
λ€μ΄λ² λΈλ‘κ·Έ
-
Pocket
Pocket
-
Evernote
Evernote
λ€λ₯Έ κΈ
-
[C++] keyword: using
[C++] keyword: using
2020.07.23 -
[C++] keyword: friend
[C++] keyword: friend
2020.07.23 -
[C++] keyword: explicit
[C++] keyword: explicit
2020.07.22 -
[C++] keyword: inline, __inline, __forceinline
[C++] keyword: inline, __inline, __forceinline
2020.07.22