스마트웹앱콘텐츠전문가/C++

[friend와 연산자 오버로딩]

9D4U 2019. 1. 11. 15:56
728x90
반응형

○ 멤버 함수와 가시성 : private , public, protected 같은 접근 지정자를 이용하여 클래스의 정보 은폐 기능을 함. 정보 은폐를 하면 객체의 신뢰성이 높아지고 기능 개선이 용이하게 됨.

○ friend 

● 정보 은폐를 해도, 프렌드(friend)라는 명시적으로 지정한 대상에 대해 모든 멤버를 공개하도록 할 수 있는 방법도 있음.(즉, 정보 은폐에 대한 에외 사항)

  ※ 필요한 경우를 제외하고는 너무 자주 사용하는 것은 좋지 않음

● 전역 함수, 클래스, 멤버 함수를 프렌드로 지정할 수 있음.

- 프렌드 함수 : 어떤 클래스 내에서 프렌드 함수는 클래스의 모든 멤버들을 접근 지정자에 관계 없이 접근할 수 있는 권한을 부여 받은 함수임.

  (예:  클래스 A에서 클래스 B를 프렌드로 선언한 경우, 클래스 간 접근성은 B 클래스는 A 클래스의 모든 멤버에 접근할 수 있지만,

        A 클래스는 B 클래스의 public 부분에 선언한 멤버에만 접근 할 수 있음)

- 프렌드 클래스 : 클래스간에 멤버를 자유롭게 접근할 필요가 있을 경우, 클래스를 프렌드로 지정하여 하용할 수 있음.

- 프렌드 멤버 함수 : 클래스의 특정 멤버 함수만 프렌드로 지정하여 반드시 필요한 함수에 대해서만 접근을 허락하는 것.

○ static과 const 멤버

● const : 변수를 상수값으로 만드는, 즉 변수의 값을 수정할 수 없도록 하는 용도로 사용.

-  멤버 함수에서도 const를 사용해서 반환값을 명시할 수 있음.

● static(정적) : 

- 일반적으로 하나의 클래스에서 선언된 객체들은 여러 개의 인스턴스를 만들 때 동일한 하나의 자료를 공유하게 할 수 있는데, 이때 클래스의 멤버 선언시 static을 이용해서 정의하면 됨.

○ 오버로딩(overloading)

- 서로 다른 여러 개의 함수가 동일한 이름으로 정의되는 것.= 함수 인자의 타입을 다르게 하거나 개수를 다르게 하여 같은 이름을 가진 함수를 여러개 만들 수 있음.

● 연산자 오버로딩 : 인수의 타입이 다르면 같은 이름으로 함수를 중복 정의할 수 있는 것처럼 연산자도 피연산자의 타입에 따라 중복 정의할 수 있음.



728x90

'스마트웹앱콘텐츠전문가 > C++' 카테고리의 다른 글

[가상 함수와 다중 상속 : 상속의 개념 연장선]  (0) 2019.01.14
[객체 지향 언어의 특징][상속]  (0) 2019.01.14
[객체배열과 객체포인터]  (0) 2019.01.10
함수  (0) 2019.01.09
기초구문  (0) 2019.01.08