C++에서 C스타일 코딩을 사용하는 것을 최대한 지양하자는 목소리가 예전부터 있어왔다.

 

특히, C++의 창시자 비야네 스트롭스트룹(Bjarne Stroustrup)은 강의와 자신의 책에서 이런 말을 했다.

 

" C++을 배우는데 더이상 C를 거칠 필요가 없다.

 

가능하면 스마트 포인터와 참조자를 쓰라."

 

 

 

 

유일무이한 초거대 IT 기업 Microsoft를 비롯해

 

많은 굴지의 초거대 기업들의 코딩 가이드 라인을 봐도 마찬가지다.

 

C++은 진화하면서 C 스타일 관용구를 사용할 필요성을 줄일 것을 강조해왔다.

 

C 스타일은 상당한 성능 이득이 있을 수 있지만, 복잡해지고 버그가 생길 수 있다.

 

또한 C 스타일은 메모리 누수를 접할 수 있다.

 

최신 C++는 Resource Acquisition Is Initialization(RAII) 원칙을 강조한다. 

 

'Resources (heap memory, file handles, sockets, and so on) should be owned by an object.

That object creates, or receives, the newly allocated resource in its constructor,

and deletes it in its destructor.

The principle of RAII guarantees that all resources get properly returned to the operating system

when the owning object goes out of scope.'

 

 

결론 :

 

스마트 포인터를 사용하여 RAII 원칙을 준수하자.

버그와 복잡성 증가에 대처할 수 있는 방안이 없다면, C 스타일을 고집하지 말자.

C++에서는 C++스타일로 코딩을 하자.

 

 

참고 :

docs.microsoft.com/en-us/cpp/cpp/welcome-back-to-cpp-modern-cpp?view=msvc-160
minjang.github.io/2016/03/21/talk-with-stroustrup/

 

 

 

 

 

Posted by Elan
: