목록💘 C++/객체지향의 기초 (4)

생성자 멤버 초기화 리스트 (Constructor member initializer list) 생성자의 멤버들을 초기화할 때 사용하는 Initializer list에 대해서 설명드리겠다. Something이라는 클래스를 만들었다. int, double, char 타입의 세 가지 멤버를 가지고 있다. 초기화하는 방법은 이전 포스팅에서 여러 번 설명드렸다. public으로 Something의 constructor를 하나 만들고 초기화를 해줬다. 이때 initializer list라는 것은 조금 더 표현이 우아하다. 이렇게 해주면 된다. 물론 이렇게 Initializer list에서 초기화를 한 다음에 아래 { }에서 다시 값을 바꿔 줄 수 있다. 일단 잘 되나 보기위해서 print함수를 하나 만들었다. 실행..

생성자 (Constructor) 객체를 설계하다 보면클래스의 인스턴스들이 만들어지자마자 어떠한 속성을 가져야한다거나, 어떠한 기능을 수행해야 하는 경우가 있다. 이럴 때 생성자 constructor를 사용을 한다. 생성자는 해당 클래스의 객체가 인스턴스화 될 때 자동으로 호출되는 특수한 종류의 멤버 함수이다. 생성자는 일반적으로 클래스의 멤버 변수를 적절한 기본값 또는 사용자 제공 값으로 초기화하거나 클래스를 사용하는데 필요한 설정(ex. 파일열기 등)이 필요한 경우 사용된다. 일반적인 멤버 함수와 다르게 생성자 정의 방법에는 특정 규칙이 있다. 생성자 이름은 클래스와 이름이 같아야 한다. 생성자는 리턴 타입이 없다. (void도 아니다.) 생성자의 기본적인 사용법에 대해서 설명드리겠다. 분수를 나타내는..

캡슐화 , 접근 지정자 , 접근 함수 크고 뛰어나고 복잡한 기능을 가진 프로그램을 개발하려면 어쩔 수 없이 내용이 복잡해진다. 많은 variable, function, class 들을 정의해서 사용하게 된다. 복잡해 보이는 것들을 단순해 보이도록 깔끔하게 정리를 잘하고 각각의 모듈별로 조립, 분리를 잘하는 사람이 프로그래밍을 잘 한다고 생각하는 게 일반적인 추세이다. 최근 소프트웨어 프로그래밍 기법은 재활용을 강조하는 방식으로 가고 있고 오픈소스를 많이 사용하고 있다. 그래서 프로그래밍을 할 때 복잡한 것들을 캡슐로 싸서 정리를 하는 것처럼 캡슐화하는 것이 중요한 개념 중 하나이다. 이번 포스팅에서는 캡슐화 Encapsulation 개념에 대해서 접근 지정자, 접근 함수와 함께 설명 드리겠다. 먼저 st..

객체지향 프로그래밍과 클래스 객체지향 프로그래밍(Object Oriented Programming)을 줄여서 OOP라고 부른다. 객체지향 프로그래밍을 클래스와 함께 살펴보자. 예를 들어 친구들에 대해서 데이터를 정리 해놓고 원할 때 그 친구에 대해서 출력해주는 프로그램을 만든다고 생각해보자. 친구에 대해서 생각해보면 이런 것들이 떠오를 수 있다. 정리해보자면 이렇게 정리할 수 있다. 그리고 이 데이터들을 전부 출력해주는 함수를 만든다고 생각해보자. 이렇게 작성할 수 있다. 이때 우리가 더 많은 친구들에 대해서 데이터를 저장하려고 한다면 array나 동적할당배열 같은 것들을 써야 한다. 친구가 늘었다 줄었다 할 수도 있으니까 vector를 사용해보자. 이런 식으로 접근을 해야 할 것이다. 이 중에 데이터 ..