C++
[C++] ๋ณ์์ ์๋ฃํ ๋ณํ (๋ฌต์์ ํ๋ณํ, ๋ช ์์ ํ๋ณํ)
carsumin
2024. 10. 1. 21:19
C++ ๋ณ์
- ์๋ฃํ ์ถ๋ก
๋ณ์๋ฅผ ์ด๊ธฐํํ ๋ ์ด๊ธฐํํ๋ ๊ฐ์ ์๋ฃํ์ผ๋ก ๋ณ์์ ์๋ฃํ์ ์ถ๋ก
auto i(10); //int i(10)๊ณผ ๋์ผ
- ๋ณ์์ ์ฌ์ฉ ์์ญ(scope)
//s1.cpp
int a; //์ ์ธ๋ ์ดํ ํ๋ก๊ทธ๋จ์ ์ ์ฒด ์์ญ์์ ์ฌ์ฉ ๊ฐ๋ฅ
static int b{10}; //์ ์ธ๋ ์ดํ ์์ ํ์ผ์ ์ ์ฒด ์์ญ์์ ์ฌ์ฉ ๊ฐ๋ฅ
int f(){
int c{20}, d{30}; //์ ์ธ๋ ์ดํ ์์ ๋ธ๋ก์ ์ ์ฒด ์์ญ์์ ์ฌ์ฉ ๊ฐ๋ฅ
{
//์ ์ธ๋ ์ดํ ์์ ๋ธ๋ก์ ์ ์ฒด ์์ญ์์ ์ฌ์ฉ ๊ฐ๋ฅ
int d{40};
int e{50};
}
}
//s2.cpp
//extern : ๋ค๋ฅธ ์ด๋๊ฐ์ ์ ์ธ๋์ด ์์
extern int a;
static int b{50};
int g(){
...
}
C++ ์ ๊ธฐ๋ณธ ์๋ฃํ
์ ์ ์๋ฃํ | ์ค์ ์๋ฃํ | ๋ณตํฉ ์๋ฃํ |
char, int, short, long, bool ... | float, double, long double | ๋ฐฐ์ด, ๊ตฌ์กฐ์ฒด(struct), ํด๋์ค(class) ... |
๋ฌต์์ ํ ๋ณํ
- ์ฐ์ ์์๊ฐ ๋ฎ์ ์๋ฃํ์ ๊ฐ์ด ์์๊ฐ ๋์ ์๋ฃํ์ ๊ฐ๊ณผ ๊ฐ์ ํ์ผ๋ก ๋ณํ๋จ
- ์ฐ์ฐ์ ๋จ์๋ก ์ด๋ฃจ์ด์ง
๋ช ์์ ํ ๋ณํ
- static_cast : ์ฐ๊ด๋ ์๋ฃํ ๊ฐ์ ํ ๋ณํ ์ฒ๋ฆฌ
- dynamic_cast : ๊ธฐ์ด ํด๋์ค์ ํ์ ํด๋์ค ๊ฐ์ ํฌ์ธํฐ ๋๋ ์ฐธ์กฐ ํ ๋ณํ์ด ํ๋ก๊ทธ๋จ ์คํ ์ค์ ์ผ์ด๋จ
- reinterpret_cast : ํฌ์ธํฐ๋ฅผ ๋ค๋ฅธ ์๋ฃํ์ ํฌ์ธํฐ๋ ์ ์ ์๋ฃํ์ผ๋ก ๋ณํ
- const_cast : const ์ง์ ์ผ์ ํด์