4-1
객체
변수들과 참고 자료들로 이루어진 소프트웨어 덩어리
추상화
객체가 현실 세계에 존재하는 것들을 나타나기 위해 필요한 과정
캡슐화
인스턴스 메소드를 통해 인스턴스 변수들을 간접적으로 조절하는 것
예시
class Animal {
private: // 외부에서 접근 불가능한 것들 (생략 가능)
int food;
int weight;
public: // 외부에서 사용가능한 것들
void set_animal(int _food, int _weight){
food = _food;
weight = _weight;
}
void increase_food(int inc){
food += inc;
weight += (inc / 3);
}
void view_stat(){
std::cout << "이 동물의 food : " << food << std::endl;
std::cout << "이 동물의 weight : " << weight << std::endl;
}
}; // 세미콜론!
4-1문제 풀이
4-2
함수 오버로딩
함수의 이름이 같더라도 인자가 다르면 다른 함수라고 판단
생성자
- 객체 생성 시 자동으로 호출되는 함수
- 객체 안 변수들을 초기화시켜줌
- 객체 초기화 역할이기 때문에 반환 값이 없음
디폴트 생성자
클래스 내에 개발자가 어떠한 생성자도 명시적으로 정의하지 않았을 경우 컴파일러가 자동으로 추가해주는 생성자
class Test {
int a;
public:
Test(){ // 디폴트 생성자
a = 1;
}
Test(int a_){
a = a_;
}
}
int main()
{
Test t1();
Test t2 = Test();
Test t3(3); // 암시적 방법 (implicit)
Test t4 = Test(4); // 명시적 방법 (explicit)
}
C++ 11부터 명시적으로 디폴트 생성자를 사용하도록 명시할 수 있음
class Test1 {
public:
Test1() = default; // 디폴트 생성자 정의해라
}
4-2 문제 풀이
TODO 해보기
'develop > C++' 카테고리의 다른 글
[씹어먹는 C++ - 4-3, 4] 복사 생성자, 소멸자, const, static (0) | 2021.09.14 |
---|---|
[씹어먹는 C++ - 3] 메모리 할당/해제 (0) | 2021.09.01 |
[씹어먹는 C++ - 2] 참조자 (0) | 2021.09.01 |