본문 바로가기

42Seoul/cpp_module8

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.
CPP Module 01 Exercise 00 : BraiiiiiiinnnzzzZ 변수의 메모리를 new를 통해 동적 할당하는 경우 데이터는 힙 영역에 저장됨 힙에 저장된 데이터는 프로그램이 끝날때까지 유지되기 때문에 더이상 사용하지 않는 경우 반드시 delete로 해제시켜주어야 함 힙에 할당하는 것은 비교적 속도가 느리고, 포인터를 역참조하여 변수의 값에 접근하는 것 역시 직접 접근하는 것보다는 느림 일반적으로 변수를 선언할 경우 정적 할당되어 데이터는 스택 영역에 저장됨 스택 영역에 저장된 데이터는 해당 변수가 지정된 범위(scope)를 벗어날시 자동으로 해제 및 소멸 스택에 할당하는 것은 비교적 속도가 빠르지만, 스택 자체의 크기가 비교적 작으므로 유의해야함 Exercise 01 : Moar brainz! new []를 통.. 2023. 2. 22.
CPP Module 00 CPP Moudle 공통항목 c++ -Wall -Wextra -Werror -std=c+98로 컴파일 과제는 모두 C++98 standard를 사용, 이후(C++11 등)에 추가된 기능들은 활용할 수 없음 class 이름은 UpperCamelCase 포멧을 사용하고 class 코드를 포함한 파일은 해당 class에 맞게 이름지어야함 구체적 지시가 있는 것이 아니라면 출력은 항상 개행으로 끝내야함 Norminette 졸업! 서브젝트에서 특별히 금지한 것이 아니라면 표준 라이브러리를 자유롭게 활용 가능 외부 라이브러리는 금지(C++11과 Boost 라이브러리 등), *printf(), *alloc(), free()도 금지 using namespace 와 friend도 금지 STL은 Moudle 08에서만 사.. 2023. 2. 22.