[42Seoul] CPP Module

수빈·2021년 12월 30일
0

42CPP

목록 보기
1/11
post-thumbnail

네임 스페이스, 클래스, 멤버 함수, stdio 스트림, 초기화 목록, 정적, 상수 등등에 대해 공부합니다

C++ Module에서는 C++98만 사용하고 있습니다.
객체 지향 프로그래밍의 기초를 공부하는 것을 목표로 합니다.
현재의 C++와 42에서 공부할 C++가 많은 면에서 다르다는 것을 알고 있다.
숙련된 C++ 코더가 되고 싶다면 현대적인 표준 C++이 필요할 것이다.

General rules

  • Header 안에 구현된 모든 기능 및 보호되지 않은 Header는 0 점을 의미합니다
  • 모든 출력은 표준 출력이며, 기본적으로 개행으로 끝납니다.
  • 파일 이름에는 letter, class name, function name, method name이 와야 합니다.
  • 명심하세요. 당신은 이제 C가 아닌 C++로 코딩하고 있습니다.
    • 다음 기능은 금지된 기능입니다. 해당 기능을 사용하면 0 점 처리를 받습니다. *alloc, printf, free*
    • 표준 라이브러리의 모든 것을 사용할 수 있습니다. C++ 버전의 함수를 사용하는 것이 현명할 것입니다.(C++은 새로운 언어이니까요)
    • CPP Module08까지 STL은 사용할 수 없습니다. include를 필요로 하는 vectors, lists, maps 등등
  • 명시적으로 금지된 기능이나 기계의 사용은 바로 0 점 처리를 받습니다
  • 또한 명시되지 않은 한 C++ 키워드 using namespace및 friend는 금지되어 있습니다.
    • 사용시 -42 점을 받을 것입니다.
  • 클래스와 관련된 파일은 별도로 지정되지 않는 한 항상 ClassName.hpp 및 ClassName.cpp입니다.
  • 반환 디렉토리는 ex00, ex01, ... , exn입니다.
  • 예제를 꼼꼼히 읽어야 합니다. 각 문제의 설명에서는 명확하지 않았던 요구 사항을 포함할 수 있습니다.
  • 앞에서 배운 C++도구는 사용할 수 있으므로 외부 라이브러리는 사용할 수 없습니다.
    • C++11과 파생 모델, Boost 또는 C++이 없다면 활용하지 못하는 기술들도 포함입니다 == for문
  • 상당한 양의 Class를 제출해야 할 수도 있습니다. 이것을 텍스트 편집기로 스크립팅할 수 없는 경우 지루해 보일 수 있습니다.
  • 각 문제를 시작하기 전에 완벽히 이해하셔야 해요!
  • 사용할 컴파일러는 clang++입니다.
  • 코드는 다음 플래그를 사용하여 컴파일해야합니다: Wall -Wextra -Werror
  • 당신의 각 includes는 다른 includes들과 독립적으로 포함될 수 있어야 합니다. Includes는 분명히 그들이 의존하는 다른 모든 include를 포함해야합니다.
  • C++에서는 norminette가 적용되지 않습니다. 원하는 스타일대로 작성해 보세요. 하지만 동료 평가자가 읽을 수 없는 코드는 채점 받을 수 없겠죠.
  • 중요한 사항 - 서브젝트에 명시되지 않은 한 프로그램에 의해 채점되지 않습니다. 과제를 선택하는 자유가 주어집니다. 하지만 제약에 유의하고 게으름을 피우지 마세요. 연습이 제공하는 많은 것을 놓칠 수 있습니다.
  • 제출하는 파일에 일부 관계없는 파일이 있는 것은 문제가 되지 않습니다. 요청한 파일보다 더 많은 파일에 코드를 분리할 수 있습니다. 프로그램에 의해 채점되지 않는 한 자유롭게 하실 수 있습니다.
  • 비록 서브젝트의 문제가 짧더라도 알아야 할 것을 확실히 이해하고, 최선의 방법으로 풀었다는 것을 증명하기 위해 시간을 할애할 가치가 있습니다
profile
42Seoul -soooh ~ 2022.04

0개의 댓글