2019/10/14
4C++ 생성자(constructor)와 파괴자(destructor)
먼저 생성자와 파괴자는 클래스를 설계할 때 사용합니다. 생성자, 파괴자는 둘 다 표준 함수입니다. 일반적으로 모든 객체는 그것을 생성할때 초기화하는 것이 가장 바람직합니다. 생성자 생성자(멤버 함수)의 이름은 클래스의 이름과 동일합니다.(이건 규칙입니다.) 예를들어서 클래스의 이름이 Person이라면 생성자의 이름도 Person이어야 합니다. 생성자가 멤버 함수와의 큰 차이점이 있다면, 바로 반환형이 없습니다. class Person { int Age; Person(int age) { //Person 클래스의 생성자 Age = age; } }; 생성자도 디폴트 매개변수 사용이 가능하며 디폴트 매개변수를 사용할때 지켜야 할 규칙은 마찬가지로 지켜야 합니다. 표준함수인데 반드시 사용을 안 해도 되는 이유 어..
프로그래밍/C++ 2019.10.14 PlorenceC++ 접근 제어자(Access Modifier)
접근 제어자(Access Modifier) 접근 제어자 또는 접근 지정자라고 부르는 사람도 있습니다. 접근 제어자에는 총 3개의 키워드가 있습니다. private public protected protected는 상속과 관련되어 있으므로 상속을 공부할 때 배우면 됩니다. private 접근 제어자 먼저 private는 클래스 내부에서만 직접적인 접근이 가능합니다. 만약에 변수의 접근 제어자를 private로 설정해놨다면 그 변수는 클래스 내부에서만 접근 가능하고 객체에서는 직접적인 접근이 불가능합니다. #include class Person { private: int age = 10; char name[100]; public: int GetAge() { return age; //가능 } }; int ma..
프로그래밍/C++ 2019.10.14 Plorence추상화(abstraction)
추상화(abstraction) 설명할 추상화에 대해서는 OOP언어 공통의 내용입니다. 추상화는 구체적인 것을 분해해서 관심 영역에 대한 특성만을 가지고 재조합하는것 입니다. 말그대로 필요한 정보들만 간추려서 구성하는 것입니다. OOP에서 추상화를 진행할 때 고려해야 할 사항 어떤 종류의 객체들을 정의할 것인가? 각 객체는 어떤 필드들과 메소드들을 갖는가? 자동차를 대상으로 추상화해보기 기름을 넣을수 있는 량 자동차 타입(소형,중형,대형 등) 시동을 건다. 움직인다. 브레이크를 건다. 시동을 끈다. 기름을 넣는다. 정도 추상화를 할 수 있습니다. 자동차는 날 수 없으므로 날다 라고 추상화가 불가능합니다. 아직까진 하늘을 나는 자동차는 없습니다. 그리고 추상화는 모든 객체에 공통적인 성질들만 담고 있어야 합..
프로그래밍/C++ 2019.10.14 PlorenceC++ 클래스
객체 지향 프로그래밍의 꽃, 클래스(Class) 객체 지향 프로그래밍(OOP,Object-Oriented Programming)에서 클래스는 OOP의 꽃같은 존재입니다.(C++ 말고도 OOP면 해당합니다.) OOP의 기능은 다음과 같습니다. 추상화(abstraction) 캡슐화(encapsulation)와 데이터 은닉(data hiding) 다형성(polymorphism) 상속(inheritance) 코드 재활용(reusability of code) 데이터형이란 무엇인가? 먼저 무엇이 데이터형을 구성하는지 잠시 생각해봅시다. 메모리에 저장되는 형태만으로 데이터형을 생각하기 쉽습니다. 예를들어 char는 1바이트, double은 8바이트 메모리를 나타냅니다. 그러나 좀 더 깊게 생각해보면, 데이터형이란 그..
프로그래밍/C++ 2019.10.14 Plorence