[42Seoul] CPP_module_00 General

tpwhzla·2023년 8월 8일

42Seoul

목록 보기
4/16

CPPPP 프래즐 프래즐...


CPP 시작!

CPP를 시작하게 되었다.
사실 아직 Netpractice subject만 정리하고... Cub3d는 끝나가며 블로그 포스팅 공백 기간 중 끝낸 과제가 산더미 같지만
우선 CPP 과제를 수행함에 있어 앞으로 지켜야 할 것들을 미리 정리해두려고 한다.


컴파일

  • C++, -Wall -Wextra -Werror 플래그를 사용하여 컴파일한다.
  • std=c+98 플래그를 추가하여 컴파일한다.

CPP_module 이름 규칙

  • ex00, ex01, ex...

  • 파일, 클래스, 함수, 멤버 함수 및 어트리뷰트의 이름은 가이드라인에서 요구하는대로 지정한다.

  • 클래스 이름은 대문자 형식으로 지정한다. 클래스 코드가 포함된 파일은, 항상 클래스 이름에 따라 이름을 지정한다.

    Ex) ClassName.hpp/ClassName.h

  • 달리 지정이 되어있지 않다면, 모든 출력 메세지는 새 줄로 끝나야만 한다.

Norminette

  • 개같은 노미넷이 이젠 없다.

CPP 스타일

  • 더 이상 C를 사용하지 않고 CPP를 사용하므로, printf, malloc, free는 금지이다.

금지

  • using namespace를 금지한다. 쓰면 -42점!
  • Module 08, 09에 도달하기 전까지 STL 사용 금지!

    컨테이너(벡터, 리스트, 맵) 및 알고리즘(Algorithm.h) 사용 불가능, 사용 시 -42점!

Memory leak

  • 메모리 누수는 CPP에서도 발생한다, CPP에서도 leak은 절대 허용 금지
  • 02부터 09까지 클래스는 반드시 정석 형식으로 설계할 것

설계 요구사항

  • 헤더파일에 사용하는 모든 함수를 구현한다. (함수 템플릿 제외)
  • 각 헤더는 다른 헤더와 독립적으로 사용할 수 있어야 한다. 따라서, 필요한 모든 종속성을 포함해야 한다.

Moulinette(?)

  • 코드 분할을 위해(한 파일이 너무 길어질 경우 분할을 위해) 추가 파일을 제출할 수 있다. Moulinette으로 확인하는 게 아니므로 필수 파일을 제출만 하면 추가 파일을 제출할 수 있다.
  • Subject 열심히 읽으세요!

profile
DevOps / Infrastructure / Cloud Native / Platform Engineering

0개의 댓글