1. 함수명이 짧아짐.

C에는 네임스페이스도, 클래스도 없기 때문에 함수를 지을 때 보통 접두어_모듈_함수이름 으로 구성하게 된다.

이러면

dc_GalleryManager_ban_user 따위로 지어야함.

이러면 이제

dc_GalleryManager_ban_user(galju, yudong);로 매번 호출해야 한다.

이에 비해서 C++이라면

galju->ban_user(yudong)정도로 짧아진다.

2. 제너릭이 있음

C언어에서 일반적인 자료구조이 없어서 보편적인 데이터를 받는 타입을 만들 때

uint64_t를 반환하고 받아야 한다.

이거를 포인터로 반환하거나 uintptr_t로 형변환해서 사용함.

3. 소멸자.

덕분에 RAII도 가능.

이게 없어서 데이터를 정리하는 코드를 매번 삽입해 줘야함.

4. 가상함수

덕분에 인터페이스도 C++에서는 가능.

이거 C에서 하려면

switch(kind) {case YUDONG: ~~~ case GONICK: ~~~}으로 case문을 짜야함.

그게 아니면 함수포인터를 이용해서 직접 가상테이블 짜줘야 함.