[C++] keyword: using
1. μ€λͺ
using ν€μλλ λ€μκ³Ό κ°μ΄ νμ©ν μ μλ€.
1. namespace using μ§μμ(Directive) |
1.1) namespace using μ§μμ(Directive)
λ€μ μ€νμ΄μ€λ λͺ μΉμ μ μΈ μμμ λΆλ¦¬ν΄μ μΆ©λμ λ°©μ§νλ€. κ·Έλμ λ€μ μ€νμ΄μ€ μμ λͺ μΉμ μ μΈνλ©΄ μ΄λ¦μ λΆμΌ λ μΆ©λμ κ±±μ νμ§ μκ³ μμ λ‘κ² μ΄λ¦μ λΆμΌ μ μλ€.
κ·Έλ¬λ μ΄λ κ² μμ±λ λͺ μΉμ μ¬μ©νλ €λ©΄ λ§€λ² μμμ λ°νμΌ νλ―λ‘ λ§€μ° λ²κ±°λ‘λ€.
λ°λΌμ using namespace (λ€μ μ€νμ΄μ€ μ΄λ¦)μ ν΅ν΄ λ§€λ² λ€μ μ€νμ΄μ€λ₯Ό μλ΅νκ³ λ°λ‘ μ¬μ©ν μ μλ€.
#include <iostream>
using namespace std;
namespace MYNS {
int value;
double score;
void func() { cout << "I am func" << endl; }
}
using namespace MYNS;
int main()
{
value = 3;
score = 1.2345;
func();
return 0;
}
I am func
1.2) namespace using μ μΈ(Declaration)
using μ§μμλ μ§μ ν λ€μ μ€νμ΄μ€μ λͺ¨λ λͺ μΉμ κ°μ Έμ€μ§λ§ using μ μΈμ νλμ λͺ μΉλ§μ κ°μ Έμ¨λ€.
#include <iostream>
using namespace std;
namespace MYNS {
int value;
double score;
void func() { cout << "I am func" << endl; }
}
int main()
{
using MYNS::value;
value = 3;
MYNS::score = 1.2345;
MYNS::func();
return 0;
}
I am func
MYNS::valueμ λν using μ μΈμ΄ main ν¨μ λ΄λΆμ μμΌλ―λ‘ main ν¨μ λ΄μμλ§ μ ν¨νλ€.
1.2.1) usingμ μν μΆ©λ
#include <iostream>
using namespace std;
namespace MYNS {
int value;
double score;
void func() { cout << "I am func" << endl; }
}
int value;
int main()
{
using MYNS::value;
// int value = 3; μλ¬
value = 3; // MYNSμ value
::value = 2; // μ μλ³μμ value
MYNS::score = 1.2345;
MYNS::func();
return 0;
}
μΈ κ°μ valueκ° μ μΈλμλλ° valueμ λν using μ μΈμ΄ main ν¨μ μ λμ μκ³ MYNS::valueκ° main ν¨μμ μ§μ μμμ λ€μ΄μ¨λ€. μ΄λ κ² λλ©΄ valueλΌλ μ΄λ¦μΌλ‘ μ°Έμ‘°ν μ μμΌλ―λ‘ κ°μ μ΄λ¦μ μ§μ λ³μλ μ μΈν μ μλ€.
λ¨, κ°μ μ΄λ¦μ μ μ λ³μκ° μλ€λ©΄ μ΄λ λ³ λ¬Έμ κ° λμ§ μλλ€. :: μ°μ°μλ‘ μ μ λͺ μΉμ μ°Έμ‘°ν μ μλ λ³λμ λ¬Έλ²μ΄ μ 곡λκΈ° λλ¬Έμ΄λ€.
#include <iostream>
using namespace std;
namespace MYNS {
int value;
double score;
void func() { cout << "I am func" << endl; }
}
int value;
int main()
{
using namespace MYNS;
int value = 3;
::value = 2; // μ μλ³μμ value
MYNS::value = 1;
return 0;
}
using μ§μμλ‘ μ¬μ©ν κ²½μ°λ μ’ λ€λ₯΄λ€. μ κ²½μ°λ λ€μ μ€νμ΄μ€ μμμ λͺ μΉκ³Ό κ°μ μ΄λ¦μ μ§μ λ³μλ₯Ό μ μΈν μ μλ, λ€μ μ€νμ΄μ€ μμμ λ³μλ₯Ό μ¬μ©νλ €λ©΄ λͺ μΉμ λΆμ¬μ€μΌ νλ€.
1.3) νμ μ μ
template <typename T>
using my_vector = std::vector<T>;
νμ μ μμ μ©λλ‘ μ¬μ©νλ κ²½μ° μμ κ°μ΄ μ¬μ© ν μ μλ€. typedefμ κ°μ κΈ°λ₯μΈλ° μ°¨μ΄μ μ΄λΌκ³ νλ©΄ κ°λ μ±κ³Ό typedefμμλ μ§μ μ νλ ν νλ¦Ώμμλ μ μ© κ°λ₯νλ€.
1.4) ν΄λμ€ κ³μΈ΅μμμ μ¬μ©
#include <iostream>
using namespace std;
class Parent
{
protected:
int age;
};
class Child : Parent
{
public:
using Parent::age;
};
int main()
{
Child c;
c.age = 5; // μ κ·Ό κ°λ₯
return 0;
}
μμ κ°μ΄ ν΄λμ€ κ³μΈ΅μμλ using ν€μλλ₯Ό μ¬μ©ν μ μλ€. Parentμ int ageλ μμνλ ν΄λμ€μμλ§ μ κ·Όν μ μλ€.
νμ§λ§ μ΄λ° μΈλΆμ λΉκ³΅κ° μ²λ¦¬λ λ³μλ ν¨μλ€μ 곡κ°νκ³ μΆλ€λ©΄ using ν€μλλ₯Ό μ¬μ©νλ€λ©΄ λ³ λ€λ₯Έ ꡬ문 μμ΄ κ³΅κ° μ²λ¦¬ν μ μλ€.
2. μ°Έκ³ λ° μΆμ²
http://www.soen.kr/lecture/ccpp/cpp3/34-2-9.htm
http://www.soen.kr/lecture/ccpp/cpp3/34-1-3.htm
https://unikys.tistory.com/381
'Language > C++' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[C++] keyword: noexcept (0) | 2020.07.23 |
---|---|
[C++11] keyword: constexpr (0) | 2020.07.23 |
[C++] keyword: friend (0) | 2020.07.23 |
[C++] keyword: static (0) | 2020.07.23 |
[C++] keyword: explicit (0) | 2020.07.22 |
λκΈ
μ΄ κΈ κ³΅μ νκΈ°
-
ꡬλ
νκΈ°
ꡬλ νκΈ°
-
μΉ΄μΉ΄μ€ν‘
μΉ΄μΉ΄μ€ν‘
-
λΌμΈ
λΌμΈ
-
νΈμν°
νΈμν°
-
Facebook
Facebook
-
μΉ΄μΉ΄μ€μ€ν 리
μΉ΄μΉ΄μ€μ€ν 리
-
λ°΄λ
λ°΄λ
-
λ€μ΄λ² λΈλ‘κ·Έ
λ€μ΄λ² λΈλ‘κ·Έ
-
Pocket
Pocket
-
Evernote
Evernote
λ€λ₯Έ κΈ
-
[C++] keyword: noexcept
[C++] keyword: noexcept
2020.07.23 -
[C++11] keyword: constexpr
[C++11] keyword: constexpr
2020.07.23 -
[C++] keyword: friend
[C++] keyword: friend
2020.07.23 -
[C++] keyword: static
[C++] keyword: static
2020.07.23