-
c++ - 기초 클래스개념c++ 2019. 12. 22. 19:06
대기업 중견급 기업 이상에서는 대부분 개발자 채용때 코딩테스트를 본다
수많은 언어들중 코린이들이 코테를 위해 가장 많이 사용하는 언어는 c++이다.
java와 같은 객체지향언어로 포인터 개념, 메모리를 직접 관리할 필요는 없어서 머리가 덜 아프다c++은 class 개념이다, 클래스 선언의 형식은 structure의 선언과 유사하며 일반 형식은 다음과 같다
class class-name{private function and variables of the class
public:
private function and variables of the class
}object-list;
클래스의 선언에서 object-list는 선택사항이다, 구조체처럼 필요할때 마다 나중에 클래스 객체를 선언할 수 있다.
class - name또한 기능상으로는 선택사항이지만 사실상 항상 필요하다 그 이유는 class-name이 클래스의 객체를 선언하는데 사용하기때문이다
클래스 선언부 내에서 선언되는 함수와 변수들을 그 클래스의 맴버라고 한다. 클래스 내에 선언되는 모든 함수와 변수들은 디폴트로 비공개가 된다, 공개 클래스 멤버를 선언하려면 public이라는 키워드를 사용하고 뒤에:를 붙인다.
public 뒤에 정의된 모든 함수와 변수들은 그 클래스의 다른 멤버들이나 그 클래스를 포함하는 프로그램 내에 존재하는 다른 부분들이 접근할 수 있다.
ex>class myclass{
int a;//비공개 변수
public:
void set_a(int num);
int get_a(); //set_a,get_a 공개함수
}
비공개 변수인 a는 myclass 외부에 존재하는 부분들은 접근불가
set_a,get_a는 myclass의 공개 함수로 선언되었기 때문에 myclass를 포함하는 프로그램의 어느 부분에서도 호출가능
이때 set_a와 get_a는 선언만 되었지 정의된 것은 아니다
다음과 같이 정의해준다
void myclass::set_a(int num)
{
a = num;
}
int myclass::get_a()
{
return a;
}
함수 둘다 비공개 변수인 a를 접근하고 있다 , 이때 두개의 함수는 공개함수로 선언 하였기에 비공개 변수인 a에
접근할수있다.
myclass 클래스를 메인 함수에 객체선언후 함수를 호출해보겠다.
정상적으로 10이 출력된것을 볼수있다.
다음으로 공개 변수와 비공개 변수의 차이를 알아보자
위 예제와 같이 public 밖 에 선언된 비공개변수,함수는 myclass 밖에서 접근할수없다.
public안에 선언된 공개변수는 myclass밖에서도 접근가능한것을 볼수있다.