C++은 무엇일까요?
간단하게 말하면 객체지향형 프로그래밍 언어 라고 할 수 있다.
객체
객체지향에서의 객체는
쉽게 말해 변수와 메서드를 그룹핑 한 개념이다.
객체지향
C++은 캡슐화, 상속, 추상화, 다형성의 특징을 가지고있는 객체지향형 언어이다.
캡슐화
관련이 있는 변수와 함수를 하나의 클래스로 묶고, 외부에서 쉽게 접근할 수 없도록 은닉하는 것이다.
상속
부모 클래스의 맴버 변수와 메소드를 자식 클래스가 재사용하는 개념이라 생각하면 된다.
추상화
객체들의 공통적인 특징을 도출하는 것.
다형성
하나의 변수 또는 함수가 명령을 받았을 때, 상황에 따라 서로 다른 방식으로 동작하는 것.
C#과의 차이점
이러한 특징을 가지고 있는 C++는 필자가 자주 애용하는 언어인 C#과도 차이가 존재하는데
그중 가장 큰 차이라고 생각하는 것은 메모리 관리이다.
C++은 '스마트 포인터' 를 이용해 메모리를 자동으로 객체에게 할당, 해제할 수 있습니다.
C#은 '가비지 콜렉터'에 의해 더 이상 사용하지 않는 객체를 메모리에서 자동으로 해제합니다.
이렇게 자동으로 해제해 주는 '가비지 콜렉터'가 더 좋아 보이지만 이것에는 한 가지 주의할 점이
있습니다. 바로 리소스 누수 현상인데요. 이러한 현상이 일어나는 이유는 '가비지 컬렉터'가 가끔 메모리 이외의 시스템 리소스를 보유하고 있는 객체의 메모리 해제를 어렵게 하기 때문입니다.
마무리
1. C++은 객체 지향 프로그래밍 언어이다.
2. 캡슐화, 상속, 추상화, 다형성 이라는 특징을 가지고있다.
3. C# 보다는 C++이 속도와 메모리 효율이 좋다.
4. C++ 해야겠죵?
반응형
'개발' 카테고리의 다른 글
C++ 열거형 (0) | 2024.03.19 |
---|---|
C++ 문자열 (0) | 2024.03.12 |
백준 15813번 너의 이름은 몇 점이니? (0) | 2024.03.10 |
C++ 이름 입출력으로 C++ 맛보기 (0) | 2024.03.08 |
코드 최적화 : for문 (2) | 2023.11.04 |