Namespace, class, member functions, stdio stream,
initialization lists, static, const, and lots of basic stuf
Summary: This document contains the subject for Module 00 of the C++ modules.
요약: 해당 문서는 C++ 모듈중 00과제를 포함합니다.
General rules
Any function implemented in a header (except in the case of templates), and any unprotected header, means 0 to the exercise.
어떤 함수든 헤더 안에서 실행되어야 하고, (템플릿 케이스는 예외) 보호되지 않은 헤더가 있을 경우, 0점입니다.
Every output goes to the standard output, and will be ended by a newline, unless specified otherwise.
모든 출력은 표준출력이어야 하고, 특정된 케이스가 없을 경우 개행으로 끝나야 합니다.
The imposed filenames must be followed to the letter, as well as class names, function names and method names.
부과된 파일이름은 문자 뿐만 아니라 클래스이름, 함수이름, 메소드이름을 따라야 합니다.
Remember: You are coding in C++ now, not in C anymore. Therefore:
기억하십시오: 당신은 지금 C가 아니라 C++로 코딩합니다. 그러므로:
1. The following functions are FORBIDDEN, and their use will be punished by a 0, no questions asked: alloc, printf and free.
다음 함수들은 금지되고, 금지된 함수의 사용은 0점 처리될 수 있습니다.:alloc, printf and free.
2. You are allowed to use basically everything in the standard library. HOWEVER, it would be smart to try and use the C++-ish versions of the functions you are used to in C, instead of just keeping to what you know, this is a new language after all. And NO, you are not allowed to use the STL until you actually are supposed to (that is, until module 08). That means no vectors/lists/maps/etc... or anything that requires an include <algorithm> until then.
당신은 표준 라이브러리의 기본적인 모든 것을 사용할 수 있습니다. 그러나, 당신이 알고있는 것을 유지하는 대신에 C에서 사용한 함수들의 C++버전을 사용하는 것이 좋습니다. 그리고 당신은 STL을 사용할 수 있을 때(CPP module08)까지 사용할 수 없습니다. 이것은 <algorithm>을 include 해야하는 어떤 것을 사용하지 못하고 또는 no vectors/lists/maps/etc을 의미합니다.
Actually, the use of any explicitly forbidden function or mechanic will be punished by a 0, no questions asked.
실제로, 명시적으로 금지된 함수와 mechanic의 사용은 0점 처리됩니다.
Also note that unless otherwise stated, the C++ keywords "using namespace" and "friend" are forbidden. Their use will be punished by a -42, no questions asked.
또한, 따로 명시되지 않은 한, C++ 키워드인 "using namespace"와 "friend"는 금지됩니다. 이것들의 사용은 -42점 처리됩니다.
Files associated with a class will always be ClassName.hpp and ClassName.cpp, unless specified otherwise.
따로 특정된 사항이 없는 한, 클래스와 연관된 파일들은 ClassName.hpp와 ClassName.cpp가 되어야 합니다.
Turn-in directories are ex00/, ex01/, . . . , exn/.
ex00/, ex01/, . . . , exn/ 디렉토리들을 제출하세요.
You must read the examples thoroughly. They can contain requirements that are not obvious in the exercise’s description. If something seems ambiguous, you don’t understand C++ enough.
당신은 예시를 신중하게 읽어야 합니다. 그 예시엔 과제설명에 명시되어 있지 않는 요구사항이 포함되어 있습니다. 모호해 보이는 것이 있다면, 당신은 C++을 충분히 이해하지 못한 것입니다.
Since you are allowed to use the C++ tools you learned about since the beginning, you are not allowed to use any external library. And before you ask, that also means no C++11 and derivates, nor Boost or anything your awesomely skilled friend told you C++ can’t exist without.
당신은 처음부터 배운 C++ 도구들을 사용할 수 있기 때문에, 외부 라이브러리를 사용할 수 없습니다. 그리고 당신이 묻기 전에, 그것은 또한 C++11 및 파생 상품도 없고, Boost 또는 당신의 엄청나게 숙련된 friend가 당신에게 C++ 없이는 존재할 수 없다고 말한 어떤 것도 의미하지 않습니다.
You may be required to turn in an important number of classes. This can seem tedious, unless you’re able to script your favorite text editor.
당신은 중요한 클래스들을 제출하기를 요구받을 수도 있습니다. 당신이 좋아하는 텍스트 에디터와 스크립트를 사용할 수 없다면 이것은 지루하게 보일 수도 있습니다.
Read each exercise FULLY before starting it! Really, do it.
시작하기전에 각 과제들을 완전히 읽어보세요. 정말로
The compiler to use is clang++.
컴파일러는 clang++을 사용합니다.
Your code has to be compiled with the following flags : -Wall -Wextra -Werror.
당신의 코드는 다음의 플래그를 붙여서 컴파일 되어야 합니다. : -Wall -Wextra -Werror
Each of your includes must be able to be included independently from others. Includes must contains every other includes they are depending on, obviously.
각 include는 다른 것과 독립적으로 포함될 수 있어야 합니다. Include는 분명히 그들이 의존하고 있는 다른 모든 Include를 포함해야 합니다.
In case you’re wondering, no coding style is enforced during in C++. You can use any style you like, no restrictions. But remember that a code your peer-evaluator can’t read is a code she or he can’t grade.
C++에서 코딩스타일은 강요되지 않습니다. 당신이 좋아하는 어떤 스타일도 제한없이 사용 가능합니다. 하지만 당신의 평가자가 읽을 수 없는 코드는 점수가 부여될 수 없는 코드라는 것을 기억하세요.
Important stuff now : You will NOT be graded by a program, unless explictly stated in the subject. Therefore, you are afforded a certain amount of freedom in how you choose to do the exercises. However, be mindful of the constraints of each
exercise, and DO NOT be lazy, you would miss a LOT of what they have to offer !
중요한 사항 : 과제에서 명시되지 않은 한, 프로그램에서 등급이 매겨지면 안됩니다. 그러므로 과제를 선택하는 데 있어서 어느정도 자유가 있습니다. 그러나 각각의 제약 조건을 염두에 두십시오. 과제를 게을리지 마십시오. 그들이 제공하는 많은 것을 놓치게 될 것입니다.
It’s not a problem to have some extraneous files in what you turn in, you may choose to separate your code in more files than what’s asked of you. Feel free, as long as the result is not graded by a program.
제출한 파일에 관련 없는 파일이 있는 것은 문제가 되지 않습니다. 요청한 것보다 더 많은 파일로 코드를 분리하도록 선택할 수 있습니다. 자유를 만끽하세요.
Even if the subject of an exercise is short, it’s worth spending some time on it to be absolutely sure you understand what’s expected of you, and that you did it in the best possible way.
과제가 짧더라도 시간을 할애하여 자신에게 기대되는 것을 이해하고 가능한 한 최선을 다했는지 확인하는 것이 좋습니다.