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 ์ง€์ • ์ผ์‹œ ํ•ด์ œ