๊ธ€ ์ž‘์„ฑ์ž: ๋˜ฅํด๋ฒ .
๋ฐ˜์‘ํ˜•

1. ์„ค๋ช…


 friend ํ‚ค์›Œ๋“œ๋Š” ํด๋ž˜์Šค ๋‚ด๋ถ€์—์„œ ๋‹ค๋ฅธ ํด๋ž˜์Šค๋‚˜ ํ•จ์ˆ˜๋“ค์„ friend๋กœ ์ •์˜ํ•  ์ˆ˜ ์žˆ๋‹ค.

friend๋กœ ์ •์˜๋œ ํด๋ž˜์Šค๋‚˜ ํ•จ์ˆ˜๋“ค์€ ์›๋ž˜์˜ ํด๋ž˜์Šค์˜ private๋กœ ์ •์˜๋œ ๋ณ€์ˆ˜๋‚˜ ํ•จ์ˆ˜๋“ค์— ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๋‹ค.

class A {
 private:
  void private_func() {}
  int private_num;

  // B ๋Š” A ์˜ ์นœ๊ตฌ!
  friend class B;

  // func ์€ A ์˜ ์นœ๊ตฌ!
  friend void func();
};

class B {
 public:
  void b() {
    A a;

    // ๋น„๋ก private ํ•จ์ˆ˜์˜ ํ•„๋“œ๋“ค์ด์ง€๋งŒ ์นœ๊ตฌ์ด๊ธฐ ๋•Œ๋ฌธ์— ์ ‘๊ทผ ๊ฐ€๋Šฅํ•˜๋‹ค.
    a.private_func();
    a.private_num = 2;
  }
};

void func() {
  A a;

  // ๋น„๋ก private ํ•จ์ˆ˜์˜ ํ•„๋“œ๋“ค์ด์ง€๋งŒ ์œ„์™€ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ์นœ๊ตฌ์ด๊ธฐ ๋•Œ๋ฌธ์— ์ ‘๊ทผ
  // ๊ฐ€๋Šฅํ•˜๋‹ค.
  a.private_func();
  a.private_num = 2;
}

 

 

2. ์ฐธ๊ณ  ๋ฐ ์ถœ์ฒ˜


๋ชจ๋‘์˜ ์ฝ”๋“œ
https://modoocode.com/203#page-heading-2
๋ฐ˜์‘ํ˜•

'Language > C++' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

[C++11] keyword: constexpr  (0) 2020.07.23
[C++] keyword: using  (0) 2020.07.23
[C++] keyword: static  (0) 2020.07.23
[C++] keyword: explicit  (0) 2020.07.22
[C++] keyword: inline, __inline, __forceinline  (0) 2020.07.22