๋ณธ๋ฌธ์œผ๋กœ ๋ฐ”๋กœ๊ฐ€๊ธฐ
728x90

 

 

 

Const ๋ณ€์ˆ˜

const int rangeDistance = 125;

 

  • const ํ‚ค์›Œ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๊ฐ’์„ ์ƒ์ˆ˜๋กœ ์„ ์–ธํ•˜์—ฌ ํ”„๋กœ๊ทธ๋ž˜๋จธ๊ฐ€ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์—†๋„๋ก ์ง€์ •ํ•  ์ˆ˜ ์žˆ๋‹ค. ์ฆ‰, ์ฝ๊ธฐ๋งŒ ๊ฐ€๋Šฅ
  • ์ปดํŒŒ์ผ ํƒ€์ž„ ๋•Œ ํ•ด๋‹น const ์ƒ์ˆ˜์˜ ๊ฐ’์ด ๊ฒฐ์ •๋˜๋ฉฐ, ๋Ÿฐํƒ€์ž„ ์ค‘์—๋Š” ๋ณ€๊ฒฝํ•  ์ˆ˜ ์—†๋‹ค.
  • ํ‰ํƒ€ ์‚ฌ๊ฑฐ๋ฆฌ, ์‹œ์•ผ ๊ฑฐ๋ฆฌ, ์Šคํ‚ฌ ๊ณ„์ˆ˜ ๋“ฑ๊ณผ ๊ฐ™์ด ํ•œ ๋ฒˆ ์„ค์ •ํ•œ ๊ฐ’์„ ๊ณ„์† ์œ ์ง€ํ•˜๋ฉด์„œ ์‚ฌ์šฉํ•  ๋•Œ ์œ ์šฉํ•˜๊ณ , ํ”„๋กœ๊ทธ๋ž˜๋จธ์˜ ์‹ค์ˆ˜๋กœ ๊ฐ’์„ ๋ณ€๊ฒฝํ•˜์—ฌ ๋ฒ„๊ทธ๋ฅผ ๋ฐœ๊ฒฌํ•˜๊ธฐ ์–ด๋ ค์šด ์ƒํ™ฉ ๋˜ํ•œ ์˜ˆ๋ฐฉํ•ด์ค€๋‹ค.

 

ํฌ์ธํ„ฐ ์ƒ์ˆ˜์™€ ์ƒ์ˆ˜ ํฌ์ธํ„ฐ

 

ํฌ์ธํ„ฐ ์ƒ์ˆ˜

 

  • ํฌ์ธํ„ฐ๊ฐ€ ๊ฐ€๋ฆฌํ‚ค๋Š” ๊ฐ’์„ ์ƒ์ˆ˜๋กœ ๋งŒ๋“ค์–ด ๋ณ€๊ฒฝ์ด ๋ถˆ๊ฐ€๋Šฅํ•˜๋„๋ก ๋งŒ๋“ ๋‹ค.
  • ํฌ์ธํ„ฐ๊ฐ€ ๊ฐ€๋ฆฌํ‚ค๋Š” ๋ณ€์ˆ˜์˜ ๊ฐ’์„ ์ง์ ‘ ๋ณ€๊ฒฝํ•˜๊ฑฐ๋‚˜, ํฌ์ธํ„ฐ ์ฃผ์†Œ๋ฅผ ๋ณ€๊ฒฝํ•˜๋Š” ๊ฒƒ์€ ๊ฐ€๋Šฅ
int hp = 100, damage = 5;
const int* ptr = &hp;

// (*ptr) = 15;     ํฌ์ธํ„ฐ๊ฐ€ ๊ฐ€๋ฆฌํ‚ค๋Š” ๊ฐ’ ๋ณ€๊ฒฝ ๋ถˆ๊ฐ€๋Šฅ
hp = 15;            // ๋ณ€์ˆ˜ ๊ฐ’ ๋ณ€๊ฒฝ ๊ฐ€๋Šฅ
ptr = &damage;      // ํฌ์ธํ„ฐ ์ฃผ์†Œ๊ฐ’ ๋ณ€๊ฒฝ ๊ฐ€๋Šฅ

 

์ƒ์ˆ˜ ํฌ์ธํ„ฐ

 

  • ํฌ์ธํ„ฐ๊ฐ€ ๊ฐ€๋ฆฌํ‚ค๋Š” ์ฃผ์†Œ๊ฐ’ ์ž์ฒด๋ฅผ ์ƒ์ˆ˜๋กœ ๋งŒ๋“ค์–ด ๋ณ€๊ฒฝ์ด ๋ถˆ๊ฐ€๋Šฅํ•˜๋„๋ก ๋งŒ๋“ ๋‹ค.
    • ํฌ์ธํ„ฐ์— ๋‹ค๋ฅธ ์ƒˆ๋กœ์šด ์ฃผ์†Œ๋ฅผ ํ• ๋‹นํ•˜๋Š” ๊ฒŒ ๋ถˆ๊ฐ€๋Šฅ
  • ํฌ์ธํ„ฐ๊ฐ€ ๊ฐ€๋ฆฌํ‚ค๋Š” ๊ฐ’์ด๋‚˜ ๊ฐ€๋ฆฌํ‚ค๋Š” ๋ณ€์ˆ˜๋ฅผ ์ง์ ‘ ๋ณ€๊ฒฝํ•˜๋Š” ๊ฒƒ์€ ๊ฐ€๋Šฅ
int hp = 100, damage = 5;
int* const ptr = &hp;

// ptr = &damage;      ํฌ์ธํ„ฐ ์ฃผ์†Œ๊ฐ’ ๋ณ€๊ฒฝ ๋ถˆ๊ฐ€๋Šฅ
(*ptr) = 15;        // ํฌ์ธํ„ฐ๊ฐ€ ๊ฐ€๋ฆฌํ‚ค๋Š” ๊ฐ’ ๋ณ€๊ฒฝ ๊ฐ€๋Šฅ
hp = 15;            // ๋ณ€์ˆ˜ ๊ฐ’ ๋ณ€๊ฒฝ ๊ฐ€๋Šฅ

 

ํฌ์ธํ„ฐ๊ฐ€ ๊ฐ€๋ฆฌํ‚ค๋Š” ์ฃผ์†Œ๋„, ๊ฐ€๋ฆฌํ‚ค๋Š” ๊ฐ’๋„ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์—†๋„๋ก ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์‚ฌ์šฉํ•  ์ˆ˜๋„ ์žˆ๋‹ค.

int hp = 100, damage = 5;
const int* const ptr = &hp;

// ptr = &damage;       ํฌ์ธํ„ฐ ์ฃผ์†Œ๊ฐ’ ๋ณ€๊ฒฝ ๋ถˆ๊ฐ€๋Šฅ
// (*ptr) = 15;         ํฌ์ธํ„ฐ๊ฐ€ ๊ฐ€๋ฆฌํ‚ค๋Š” ๊ฐ’ ๋ณ€๊ฒฝ ๋ถˆ๊ฐ€๋Šฅ
hp = 15;                // ๋ณ€์ˆ˜ ๊ฐ’ ๋ณ€๊ฒฝ ๊ฐ€๋Šฅ

 

 

Const ๋ฉค๋ฒ„ ํ•จ์ˆ˜

class Monster {
    int hp;
public:
    int GetHP() const;          // ์ƒ์ˆ˜ ๋ฉค๋ฒ„ ํ•จ์ˆ˜ ์„ ์–ธ๋ถ€
    void SetHP(int hp);
};

int Monster::GetHP() const {    // ์ƒ์ˆ˜ ๋ฉค๋ฒ„ ํ•จ์ˆ˜ ๊ตฌํ˜„๋ถ€
    return hp;
}

void Monster::SetHP(int hp) {
    this->hp = hp;
}
  • const ํ‚ค์›Œ๋“œ๋ฅผ ํ†ตํ•ด ๋ฉค๋ฒ„ ํ•จ์ˆ˜๋ฅผ ์„ ์–ธํ•˜๋ฉด, '์ฝ๊ธฐ ์ „์šฉ' ํ•จ์ˆ˜๋กœ ์ง€์ •ํ•  ์ˆ˜ ์žˆ๋‹ค. ์ฆ‰, ์ƒ์ˆ˜ ๋ฉค๋ฒ„ ํ•จ์ˆ˜๊ฐ€ ๋œ๋‹ค.
  • ํ•ด๋‹น ํ•จ์ˆ˜๋Š” ๋‹ค๋ฅธ ๋ณ€์ˆ˜์˜ ๊ฐ’์„ ๋ฐ”๊พธ์ง€ ์•Š๋Š” ํ•จ์ˆ˜๋ผ๊ณ  ๋‹ค๋ฅธ ํ”„๋กœ๊ทธ๋ž˜๋จธ์—๊ฒŒ ๋ช…์‹œ์‹œํ‚ฌ ์ˆ˜ ์žˆ๋‹ค.
  • ์ƒ์ˆ˜ ํ•จ์ˆ˜ ๋‚ด์—์„œ๋Š” ๊ฐ์ฒด๋“ค์˜ ์ฝ๊ธฐ๋งŒ ์ˆ˜ํ–‰๋˜๊ณ , ์ƒ์ˆ˜ ํ•จ์ˆ˜ ๋‚ด์—์„œ ํ˜ธ์ถœํ•  ์ˆ˜ ์žˆ๋Š” ํ•จ์ˆ˜๋Š” ๋‹ค๋ฅธ ์ƒ์ˆ˜ ํ•จ์ˆ˜๋งŒ ๊ฐ€๋Šฅ

 

Const ๊ฐ์ฒด

Monster slime;
const Monster ribbonPig;

slime.GetHP();
slime.SetHP(100);
ribbonPig.GetHP();
// ribbonPig.SetHp(100);      const ๊ฐ์ฒด๋Š” ๋‚ด๋ถ€ ๊ฐ’ ๋ณ€๊ฒฝ ๋ถˆ๊ฐ€
  • const ํ‚ค์›Œ๋“œ๋ฅผ ์‚ฌ์šฉํ•œ ๊ฐ์ฒด๋Š” ๋‚ด๋ถ€ ๋ฉค๋ฒ„ ๊ฐ’์„ ์ฝ๊ธฐ๋งŒ ๊ฐ€๋Šฅํ•˜๊ณ , ์ˆ˜์ •์€ ๋ถˆ๊ฐ€๋Šฅํ•˜๋‹ค.
  • ์ด๋Ÿฐ ํŠน์ง•์„ ์ด์šฉํ•ด์„œ, ํ•จ์ˆ˜์—์„œ const &๋กœ ๋งค๊ฐœ๋ณ€์ˆ˜๋ฅผ ๋ฐ›์•„ ์ฐธ์กฐํ•œ ๊ฐ์ฒด ์ˆ˜์ •์€ ๋ถˆ๊ฐ€๋Šฅํ•˜๊ณ  ์ฝ๊ธฐ๋งŒ ๊ฐ€๋Šฅํ•˜๋„๋ก ์‘์šฉํ•  ์ˆ˜๋„ ์žˆ๋‹ค.

 

 

 

์ฐธ๊ณ 

728x90
๋ฐ˜์‘ํ˜•