본문 바로가기

분류 전체보기240

Tip of the Week #42: Prefer Factory Functions to Initializer Methods Originally posted as totw/42 on 2013-05-10 By Geoffrey Romer (gromer@google.com) Revised 2017-12-21 예외가 허용되지 않는 환경(예: Google 내)에서 C++ 생성자는 호출자에게 실패를 보고할 방법이 없기 때문에 효과적으로 성공해야 한다. 물론 abort()를 사용할 수 있지만 그렇게 하면 전체 프로그램이 충돌하며 이는 종종 상품화 코드에서 허용되지 않는다. 클래스의 초기화 로직이 실패 가능성을 피할 수 없는 경우, 한가지 일반적인 접근 방식은 클래스에 초기화 메서드(initializer method)("init method"라고도 함)를 제공하는 것이다. 이 메서드는 실패할 수 있는 초기화 작업을 수행하고, return값을.. 2022. 5. 20.
Google C++ Style Guide : 범위(Scoping) Scoping 네임스페이스 (Namespaces) 몇 가지 예외들을 제외하고는 네임스페이스에 코드를 배치한다. 네임스페이스는 프로젝트 이름과 가능한 경로를 기준으로 고유한 이름을 가져야 한다. using 지시문을 사용하지 마라 (예 : using namespace foo) 인라인 네임스페이스를 사용하지 마라. 명명되지 않은 네임스페이스에 대해서는 내부 연계(Internal Linkage)를 참조하라. 정의: 네임스페이스는 전역 범위를 고유한, 명명된 범위로 세분화하므로 전역 범위에서 이름 충돌을 방지하는데 유용하다. 장점: 네임스페이스는 대부분의 코드가 합리적으로 짧은 이름을 사용할 수 있도록 하면서 대규모 프로그램에서 이름 충돌을 방지하는 방법을 제공한다. 예를 들어 두 개의 서로 다른 프로젝트에 전역.. 2022. 5. 16.
Codewars - [7 kyu] Reverse words Questions space 마다 단어를 반대로 만들어서 리턴해주는 문제이다. space의 개수 만큼 reverse words에도 추가해줘야 한다. Examples "This is an example!" ==> "sihT si na !elpmaxe" "double spaces" ==> "elbuod secaps" Solutions using namespace std; int checkEmptyCount(string str, int startIndex) { int count = 0; for(int i=startIndex; i 2022. 5. 3.
Google C++ Style Guide : 헤더 파일(Header Files) 헤더 파일(Header Files) 일반적으로 모든 .cc 파일에는 연관된 .h 파일이 있어야 한다. 유닛 테스트 및 main() 함수만 포함하는 작은 .cc 파일과 같은 몇 가지 common 예외가 있다. 헤더 파일을 올바르게 사용하면 코드의 가독성, 사이즈 및 성능에 큰 차이를 가져올 수 있다. 다음의 규칙들은 헤더 파일을 사용할 때 발생하는 다양한 위험에 대해 소개한다. 자체 포함 헤더 (Self-contained Headers) 헤더 파일은 독립적이어야 하고(자체적으로 컴파일해야 함) .h로 끝나야 한다. 포함을 위한 비헤더 파일은 .inc로 끝나야 하며 신중하게 사용해야 한다. 여기서 포함을 위한 비헤더 파일은 무엇일까? An .inc file is not a header file. it cou.. 2022. 5. 1.
300x250