크래스 멤버의 접근 속성à private,protected,public 이있다.
멤버함수 정의형식:
자료형 클래스 이름::멤버 함수 이름(매개변수)
{
함수내용;
}
함수내용에서 클래스의 멤버 변수는 별도의 선언이나 매개변수로 전달받지않고 사용할수있다
멤버 함수정의 부분에서 '클래스 이름::'으로 범위가 설정되어있기 때문에 해당 클래스의 멤버를 직접적으로 접근해서 참조할수있다.
같은 클래스내의 멤버들끼리는 자유롭게 접근할수있다
클래스의 멤버접근 속성이란? 클래스의 밖에서 클래스 멤버 변수와 함수에 접근할 수 있는 자격설정을 나타낸다.멤버 변수에 값을 설정하거나 출력하려면 그변수를 참조할수있어야한다.
이것은 멤버 접근 속성에 따라 결정된다.
접근지정자:
- Private: 같은 크래스 멤버만 접근허용
- Public : 모든 위치에서 접근 허용
클래스 멤버는 멤버 참조 연산자(.) 로 접근하며 접근 속성에 의해 참조 여부가 결정된다.
à멤버접근 속성은 한번 명시하면 다시 명시되기전까지 계속 명시된 멤버 접근 속성으로 지속된다.
멤버접근 속성을 명시하지않으면 private 이 기본이라는 것은 private 속성이 기본임을 의미함
Private 속성멤버는 같은 클래스 내에서만 접근을 허락한다.
- 일반적으로 클래스를 정의할 때 멤버변수와 내부처리에 해당하는 멤버 함수는 private으로 지정하며 private 속성 의멤버 변수에 값을 할당하거나 외부에 값을 출력하는 함수는 public 으로 멤버접근 속성을 설정한다.
외부로의 공개를 방지하기 위해 private 속성을 기본으로 설정
- 멤버변수와 내부 처리의 경우 private 속성으로 , 외부에서 수행할 멤버함수의 경우 public 으로 설정한다.
또한 멤버 변수에 값을 할당할 때 ㅣpublic 멤버 함수를 사용한다면 일반적으로 'set'으로 시작,
멤버변수의 값을 외부로 출력할때는 public 멤버함수에 'get' 으로 표기한다.(사용자마음임)
ex:
class test
{
Public:
Void show();
Void set(cons int s) ;
Int get();
Private:
Int score;
};
Void test::setscroe(cost int s)
{
Score=s;
}
Int test::get()
{
Return score;
}
예에서 세개의 멤버함수는 public 으로 접근 속성을 정함,멤버 변수는 private 로 접근 속성을 정함,멤버 함수set()의 경우 전달받은 매개변수는 값 할당에 사용되고 값이 함수 내에서 변하지않는다
따라서 sonst로 매개 변수가 입력값으로 사용된다.get()의 경우 함수의 반환값으로 score를 전달해서 외부에서 사용할수있게ㅐ 된다