본문 바로가기

42Seoul52

CPP Module 05 전반적으로 try-catch를 사용한 에러 처리 구조 외에는 별달리 설명할 내용이 없는 과제 Exercise 00 : Mommy, when I grow up, I want to be a bureaucrat! throw로 발생시킬 예외는 클래스 내에 std::exception 클래스를 상속받는 예외 클래스를 정의해둔 후, 가상으로 선언되어있는 what() 멤버 함수를 재정의하여 사용하면 됨 단, 이 때 예외는 반드시 try 내에서 throw를 통해 던져져야만 이어지는 catch에서 인식할 수 있음 관련 지식들을 미리 정리해두었던 내용 Exercise 01 : Form up, maggots! const멤버 변수가 존재할 경우 대입 연산자를 원래처럼 사용할 수 없음 const_cast를 사용하여 const 변.. 2023. 2. 22.
CPP Module 04 Exercise 00 : Polymorphism Polymorphism(다형성) : 객체의 런타임 형(type)에 따라 함수 기능에 차이를 보이는 성질 C++에서는 어떠한 클래스의 포인터 변수에 해당 클래스의 하위 클래스 객체의 주소도 할당할 수 있도록 허용됨 따라서 Animal 클래스의 포인터 변수를 선언시 하위 클래스인 Dog나 Cat을 사용할 수 있음 이 경우 virtual 키워드로 정의된 멤버 함수는 하위 클래스에서 재정의된 것으로 동작하고, 나머지는 현재 선언된 클래스의 것을 따름 const로 선언된 클래스 객체의 경우 const로 선언된 멤버 함수만 사용 가능 Exercise 01 : I don't want to set the world on fire 새롭게 할당받는 포인터 멤버 변수가.. 2023. 2. 22.
CPP Module 03 Exercise 00 : Aaaaand... OPEN! 과제의 요구사항대로 구현한다면 특별히 서술할만한 내용은 없음 Exercise 01 : Serena, my love! 클래스의 상속에서, 자식 클래스는 부모 클래스의 멤버들을 이어받아 사용하게됨 부모 클래스의 private 멤버는 외부 및 자식 클래스에서 직접 사용할 수 없음 부모 클래스의 protected 멤버는 자식 클래스에서는 직접 사용할 수 있으나, 외부에서는 여전히 사용할 수 없음 부모 클래스와 자식 클래스에 같은 이름과 원형의 멤버함수가 존재하는 경우 함수의 재정의가 필요 부모 클래스에서 해당 함수를 virtual로 선언 자식 클래스에서는 새롭게 정의를 만들어 사용 상속을 사용할 경우, 소멸자는 항상 virtual로 선언 : 그렇지 않으면 .. 2023. 2. 22.
CPP Module 02 New Rules (CPP 02-08) 클래스들이 Orthodox Canonical Form에 맞추어 작성되어야함 따라서 아래의 멤버 함수들이 필수로 포함되어있도록 작성 기본 생성자 복사 생성자 대입 연산자 소멸자 Exercise 00 : My First Class in Orthodox Canonical Form Orthodox Canonical Form 형식에 맞는 클래스를 만들어낼 수 있는지 확인하는 문제 멤버 변수들은 모두 private으로 설정 fractional_bits 변수는 static으로 받아 모든 객체에서 값이 공유되도록 설정 fixed_value는 private으로 설정해 클래스 외부에서 접근할 수 없기 때문에 getRawBits()와 setRawBits() 함수를 만들어서 사용 변수에.. 2023. 2. 22.