๐Ÿ˜ญ์ฝ”๋”ฉ ๊ทœ์น™ : typedef ๋ณด๋‹ค๋Š” using์„ ์‚ฌ์šฉํ•˜์ž.

๋ณด๋ฌผ์ฐฝ๊ณ ยท2022๋…„ 3์›” 2์ผ
0

c++Intermediate ์ฝ”๋“œ๋ˆ„๋ฆฌ

๋ชฉ๋ก ๋ณด๊ธฐ
16/62

//์ฝ”๋“œ ๋ˆ„๋ฆฌ ๊ฐ•์˜๋ฅผ ๋ณด๊ณ  ์ •๋ฆฌํ•œ ๋‚ด์šฉ์ž…๋‹ˆ๋‹ค.

์ƒˆ๋กญ๊ฒŒ ์ถ”๊ฐ€ 240302

-> ๋„ค์ด๋ฒ„ ๋ธ”๋กœ๊ทธ template Alias ๋‚ด์šฉ ์ฐธ๊ณ ํ•˜์ž.


typedef

: ๋ณ„์นญ์„ ๋งŒ๋“œ๋Š” ํ‚ค์›Œ๋“œ (c์–ธ์–ด์—์„œ๋ถ€ํ„ฐ ์‚ฌ์šฉ๋œ)

์‚ฌ์šฉ๋ฒ•

  • ์›ํ˜•ํƒ€์ž….
    typedef ์›ํ˜•ํƒ€์ž… ๋ณ„์นญ์ด๋ฆ„
  • ํ•จ์ˆ˜ ํฌ์ธํ„ฐ์˜ ๊ฒฝ์šฐ
    typedef (๋ฐ˜ํ™˜ํ˜•)(*๋ณ„์นญ ์ด๋ฆ„)(์ธ์ž ์‹œ๊ทธ๋‹ˆ์ฒ˜)

๊ฐœ๋…๊ณผ ์˜ˆ์ œ

  • typdef๋Š” ๊ธฐ๋ณธ ํƒ€์ž…์— ๋Œ€ํ•œ ๋ณ„์นญ์„ ๋งŒ๋“ฌ.

    -> int ํ˜•์˜ ๋˜ ๋‹ค๋ฅธ ์ด๋ฆ„์œผ๋กœ IINT๋ฅผ ์ •์˜ํ•จ.
    -> ํ•จ์ˆ˜ ํฌ์ธํ„ฐ์˜ ๋˜ ๋‹ค๋ฅธ ์ด๋ฆ„์œผ๋กœ FP๋ฅผ ์ •์˜ํ•จ.

using

: c++11์—์„œ ๋‚˜์˜จ ๋‹ค๋ฅธ ๋ณ„์นญ ํ‚ค์›Œ๋“œ

๋ณ€๊ฒฝ์ 

typedef ๋ฅผ -> using ํ‚ค์›Œ๋“œ๋กœ ๋ฐ”๊พธ์ž.
์™œ๋ƒํ•˜๋ฉด using๋งŒ์˜ ์žฅ์ ์ด ์žˆ์Œ.

typedef์˜ ๊ฒฝ์šฐ๋Š” ์ผ๋ฐ˜ ํƒ€์ž…์œผ๋กœ ๋ณ„์นญ์„ ๋งŒ๋“ค ์ˆ˜ ์žˆ์Œ.
ํ…œํ”Œ๋ฆฟ์€ ๋ถˆ๊ฐ€๋Šฅํ•จ.
-> Point ๋Š” ํƒ€์ž…์ด ์•„๋‹Œ ํ…œํ”Œ๋ฆฟ ์ด๊ธฐ ๋•Œ๋ฌธ์— ๋ถˆ๊ฐ€ํ•จ.

  • typedef๋Š” type๋งŒ ๋ณ„์นญ์œผ๋กœ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋‹ค!
  • using์€ type๋ฟ ์•„๋‹ˆ๋ผ template๋„ ๋ณ„์นญ์œผ๋กœ ๋งŒ๋“ค์ˆ˜ ์žˆ๋‹ค!

์ •๋ฆฌ

typedef : ์ผ๋ฐ˜ ํƒ€์ž…์— ๋Œ€ํ•ด์„œ๋งŒ ๋ณ„์นญ์„ ๋งŒ๋“ค ์ˆ˜ ์žˆ์Œ.
using : ์ผ๋ฐ˜ ํƒ€์ž… ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ํ…œํ”Œ๋ฆฟ์— ๋Œ€ํ•œ ๋ณ„์นญ์„ ๋งŒ๋“ค ์ˆ˜ ์žˆ์Œ.

  • using์„ template alias๋ผ๊ณ ๋„ ํ•จ.

using ์‚ฌ์šฉ๋ฒ•

1) using id = typeid;
2) template
using id = typeid;

  • using์ด ํ…œํ”Œ๋ฆฟ์— ๋Œ€ํ•œ ๋ณ„์นญ์„ ๋งŒ๋“ ๋‹ค๊ณ  ํ• ๋•Œ๋Š”
    ๋ฐ˜๋“œ์‹œ template๊ณผ ๊ณต์กดํ•ด์•ผ ํ•จ.

  • using์œผ๋กœ template์œผ๋กœ ๋˜์–ด ์žˆ๋Š” pair๋ฅผ ๋ฐ›์•„๋ณด์ž.

  • ํƒ€์ž… ํ•˜๋‚˜๋กœ ๊ณ ์ •์‹œํ‚ค๊ธฐ

problem

๊ฐ€) int ๋ฅผ typedef ๋ฅผ ์ด์šฉํ•ด INT๋กœ ๋ณ€๊ฒฝํ•˜๋ผ.

  • ๊ทธ๋ฆฌ๊ณ  INT ๋ฅผ ์‚ฌ์šฉํ•ด์„œ ๋ณ€์ˆ˜ ์ดˆ๊ธฐํ™”ํ•˜๊ณ  ์ถœ๋ ฅ๊นŒ์ง€.

๋‚˜) double์„ using์œผ๋กœ DOUBLE๋กœ ๋ณ€๊ฒฝํ•˜๋ผ.

  • ๊ทธ๋ฆฌ๊ณ  ๋ณ€์ˆ˜ ์ดˆ๊ธฐํ™”ํ•˜๊ณ  ์ถœ๋ ฅ๊นŒ์ง€.

๋‹ค) ํ…œํ”Œ๋ฆฟ์œผ๋กœ Point ํด๋ž˜์Šค๋ฅผ ๋งŒ๋“ค๊ณ , ์ด๋ฅผ using์„ ์‚ฌ์šฉํ•ด POINT(๋Œ€๋ฌธ์ž)๋กœ ๋ฐ›์€ํ›„,์™ธ๋ถ€์—์„œ ๊ฐ์ฒด๋ฅผ ๋งŒ๋“ค์–ด, Point์˜ printํ•จ์ˆ˜๋ฅผ ํ˜ธ์ถœํ•˜๋ผ.

๋ผ) typedef ๋กœ๋„ ํ•ด๋ณด์ž!!

profile
๐Ÿ”ฅ๐Ÿ”ฅ๐Ÿ”ฅ

0๊ฐœ์˜ ๋Œ“๊ธ€