μ§μλ³μμ μ μλ³μμ μ μμ μμΉ
- μ μ λ³μλ ν¨μ λ°μμ μ μλλ©°, νλ‘κ·Έλ¨μ λͺ¨λ ν¨μμμ μ κ·Όν μ μλ€.
- μ§μ λ³μλ ν¨μ λ΄λΆμμ μ μλλ©°, ν΄λΉ ν¨μ λ΄μμλ§ μ ν¨νλ€.
#include <iostream>
using namespace std;
int global_variable = 30; //μ μλ³μ μ μ
void exampleFunction() {
int local_variable = 15; //μ§μλ³μ μ μ
cout << "μ μ λ³μ: " << global_variable << endl;
cout << "μ§μ λ³μ: " << local_variable << endl;
}
int main() {
exampleFunction();
// μΆλ ₯:
// μ μ λ³μ: 30
// μ§μ λ³μ: 15
// λ€μ μ½λλ μ»΄νμΌ μ€λ₯λ₯Ό λ°μμν΅λλ€
// cout << local_variable << endl; // 'local_variable' was not declared in this scope
return 0;
}
- μ μλ³μλ₯Ό μ΄κΈ°ννμ§ μμΌλ©΄ 0, false, 0.0Fμ κ°μ΄ μλμΌλ‘ μ΄κΈ°κ°μ΄ μ¬μ©λμ§λ§ μ§μλ³μμ κ°μ μλμΌλ‘ μ΄κΈ°νλμ§ μμΌλ―λ‘ μ§μ λ³μλ λ³μλ₯Ό μ μΈν¨κ³Ό λμμ μ΄κΈ°κ°μ μ€μ ν΄μΌ νλ€. μ΄κΈ°κ°μ μ€μ νμ§ μμ μ§μ λ³μλ garbage κ°μ΄ μΆλ ₯λ μ μλ€.
< μ μ λ³μμ μ§μ λ³μμ μ΄λ¦ μΆ©λ >
- λ§μ½ μ μλ³μμμ μ μν λ³μλ₯Ό μ§μλ³μμμ λ€μ μ μνλ€λ©΄, μ§μ λ³μκ° μ°μ μ μΌλ‘ μ¬μ©λλ€.
- μ μ λ³μλ μ§μ λ³μλ‘ μΈν΄ κ°λ €μ§λ νμμ μμμ κ°λ¦Ό(hiding)μ΄λΌκ³ νλ€.
#include <iostream>
using namespace std;
// μ μ λ³μ μ μ
int value = 100;
void exampleFunction() {
// μ§μ λ³μ μ μ
int value = 50;
cout << "μ§μ λ³μ value: " << value << endl;
}
int main() {
cout << "μ μ λ³μ value: " << value << endl; // μ μ λ³μ value: 100
exampleFunction(); // μ§μ λ³μ value: 50
return 0;
}
- C++ μΈμ΄μμλ μμ μ°μ°μ μ¦ '::'λ₯Ό μ΄μ©ν΄μ μ μ λ³μλ₯Ό νμ μ§μΉμ΄ κ°λ₯νλ€.
- κ·Όλ³Έμ μΈ κ²μ μ€μ λ‘ μ μ λ³μ λ° μ§μ λ³μκ° λμΌν μ΄λ¦μ κ°μ§μ§ μλλ‘ λ³μκ° μ μ₯νλ μ 보λ₯Ό μ ννκ² λ»νλ μ©μ΄λ₯Ό λ³μ μ΄λ¦μΌλ‘ μ¬μ©νλ©°, μ κ²νλ κ²μ΄λ€,
- λκ·λͺ¨ νλ‘κ·Έλ¨μμλ λ€μμ€νμ΄μ€λ₯Ό μ΄μ©ν΄μ μ μ λ³μ/ ν¨μ λ±μ 체κ³μ μΌλ‘ κ΄λ¦¬ν¨μΌλ‘μ¨ μ΄λ¦ μΆ©λ λ¬Έμ λ₯Ό ννΌνλ€.
#include <iostream>
using namespace std;
// μ μ λ³μ μ μ
int value = 100;
void exampleFunction() {
int value = 50; // μ§μ λ³μ μ μ
cout << "μ§μ λ³μ value: " << value << endl; // μ§μ λ³μ μ¬μ©
cout << "μ μ λ³μ value: " << ::value << endl; // μ μ λ³μ μ¬μ©
}
int main() {
cout << "μ μ λ³μ value: " << value << endl; // μ μ λ³μ μ¬μ©
exampleFunction(); // ν¨μ νΈμΆ
return 0;
}
μΆλ ₯ :
μ μ λ³μ value: 100
μ§μ λ³μ value: 50
μ μ λ³μ value: 100
- μ¬κΈ°μ ::valueλ μ μ λ³μ valueλ₯Ό μ§μΉνλ€. exampleFunction ν¨μ λ΄λΆμμλ μ§μ λ³μ valueκ° μ°μ μ μΌλ‘ μ¬μ©λμ§λ§, ::valueλ₯Ό ν΅ν΄ μ μ λ³μμ μ κ·Όν μ μλ€.
#include <iostream>
using namespace std;
namespace NamespaceA {
int value = 100; // λ€μμ€νμ΄μ€ Aμ μ μ λ³μ
}
namespace NamespaceB {
int value = 200; // λ€μμ€νμ΄μ€ Bμ μ μ λ³μ
}
void exampleFunction() {
int value = 50; // μ§μ λ³μ
cout << "μ§μ λ³μ value: " << value << endl; // μ§μ λ³μ μ¬μ©
cout << "NamespaceAμ μ μ λ³μ value: " << NamespaceA::value << endl; // λ€μμ€νμ΄μ€ Aμ μ μ λ³μ μ¬μ©
cout << "NamespaceBμ μ μ λ³μ value: " << NamespaceB::value << endl; // λ€μμ€νμ΄μ€ Bμ μ μ λ³μ μ¬μ©
}
int main() {
cout << "NamespaceAμ μ μ λ³μ value: " << NamespaceA::value << endl; // λ€μμ€νμ΄μ€ Aμ μ μ λ³μ μ¬μ©
cout << "NamespaceBμ μ μ λ³μ value: " << NamespaceB::value << endl; // λ€μμ€νμ΄μ€ Bμ μ μ λ³μ μ¬μ©
exampleFunction(); // ν¨μ νΈμΆ
return 0;
}
μΆλ ₯ :
NamespaceAμ μ μ λ³μ value: 100
NamespaceBμ μ μ λ³μ value: 200
μ§μ λ³μ value: 50
NamespaceAμ μ μ λ³μ value: 100
NamespaceBμ μ μ λ³μ value: 200
μ μ μ§μ λ³μ(static local variable)
- ν΄λΉ λ³μμ 곡κ°μ΄ ν¨μμ μνμ΄ μ’ λ£λ νμλ μ ν¨νλ€
- κ·Έλ¬λ―λ‘ ν¨μκ° μ’ λ£λ νμλ κ·Έ κ°μ΄ μ μ§λλ ν¨κ³Όκ° μλ€ (μ μλ³μμ²λΌ ν¨κ³Όκ° λνλ¨)
'C Programming Language > C++' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
C++ νμ κ³Ό μμμ λν΄ νμ΅νκΈ° (2) (0) | 2024.08.25 |
---|---|
C++11 ν€μλ) nullptr(λν¬μΈν°), auto(μ€ν ), decltype(λν΄νμ ), lvalue(μ’μΈ‘κ°)μ rvalue(μ°μΈ‘κ°) (0) | 2024.08.14 |
C++ ν¬μΈν°, λμ ν λΉ, μ°Έμ‘° λ³μμ λν΄ νμ΅νκΈ° (0) | 2024.08.14 |
C++ ν λ³νμ λν΄ νμ΅νκΈ° (0) | 2024.08.14 |
C++ νμ κ³Ό μμμ λν΄ νμ΅νκΈ° (1) (0) | 2024.08.14 |