본문 바로가기

42Seoul/cpp_module8

CPP Module 07/08 CPP07 Exercise 00 : Start with a few functions 함수 템플릿을 활용하면 되는 간단한 과제 Exercise 01 : Iter for_each() 함수를 구현하는 과제 단, 이터레이터를 활용하는 것이 아니므로 템플릿 인자로 받은 T형 변수의 포인터 주소와 해당 변수의 길이를 매개변수로 받아 활용하도록 되어있음 Exercise 02 : Array 템플릿 클래스를 만들어보는 과제 관련 지식을 미리 정리해놓은 내용 CPP08 Exercise 00 : Easy find CPP08 에서는 STL과 헤더의 함수들이 사용 가능함 00번은 STL의 Container들에서 사용되는 iterator를 활용한 std::find 함수를 써보라는 과제 iterator에 관한 지식을 미리 정리해놓.. 2023. 2. 22.
CPP Module 06 Exercise 00 : Conversion of scalar types static_cast를 사용한 형변환이 주가 되는 과제 main 함수의 매개변수로 받은 C 스트링을 string으로 우선 만들어놓은 후, 해당 스트링을 double형으로 변환하여 사용 변환에는 strtod() 함수를 이용 strtod() 함수의 두번째 인자로 받는 char형 포인터에는 double 형으로 변환이 불가능한 문자의 위치가 저장됨 즉, 변환이 정상적으로 이루어졌을 경우에는 문자열 끝의 \0 위치를 반환 inf는 infinity를 뜻하고, nan은 Not a number의 약자로 숫자가 아님을 뜻함 문제에서 inf의 경우 +,-를 구분하라고 하였으므로 std::showpos를 사용해 부호를 표시 std::numeric_li.. 2023. 2. 22.
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.