STUDY LOG/C\C++

C++이란?

Jinwang Mok 2021. 9. 27. 11:27

지난 학기에 배운 C도 아직 정리해서 올리지 않았지만, 그 확장판이라고 볼 수 있는 C++을 이번 학기에 수강하기에.. 여튼 시작해보겠습니다.😆

 

C++ 이란 무엇인가?

일단, C++이란 프로그래밍 언어입니다. 소프트웨어를 만들거나 알고리즘 문제를 풀거나 멋져보이고 싶거나 어쨌거나 우리는 프로그래밍 언어를 통해 프로그램을 짜야합니다.

 

이 프로그래밍 언어에도 어떤 철학에 따라 두가지 종류가 있는데, 바로 절차 지향 언어객채 지향 언어가 있습니다.

 

절차 지향 언어Procedural Programming language는 말그대로 일의 절차에 초점을 맞춘 언어로 대표적으로 C언어가 이에 해당됩니다. 프로그램을 절차로 이해하고 순서에 맞게 짜는 것에 특화되었다고 볼 수 있을 것 같습니다.

 

이와 반대로, 객체 지향 언어Object Oriented Programming language는 프로그래밍을 객체 단위로 인식하자는 철학이 담긴 언어를 의미합니다. 자판기의 경우 금액 투입부, 음료 선택부, 음료 배출부 등 각각의 파트들이 모여 자판기를 이루었다고 인식하는 것으로 예시를 들 수 있을 것 같습니다.

 

C++은 이 중에서도 객체 지향 언어(OOP)입니다. 따라서, 기존 C언어의 문법과 유사하지만 철학적으로 좀 다르다는 것을 기억하고 넘어가야겠습니다. 

 

C++의 특징

C++의 특징을 살펴보면 한 눈에 C++을 이해하기 쉬워지는데요, 그 특징은 아래와 같습니다.

  • Object Oriented Programming language
  • Compatibility with C
  • Inline function
  • Default Parameters
  • Reference
  • Call by Reference
  • Dynamic memory allocation & release : new and delete operator
  • Generic Method & Class
  • Class & Instance 
  • EnCapsulation
  • Inheritance
  • Polymorphism
    • Function/Operator Overloading
    • Function Overriding

이 특징들에 대해 추가적으로 정리하자면,

 

캡슐화EnCapsulation는 데이터를 외부와 격리하고 보호하는 것을 의미합니다. 자판기의 버튼을 빼서 회로를 조작해서 레쓰비 버튼을 눌렀을 때 스프라이트가 나오지 못하도록 하는 것 정도로 이해할 수 있겠습니다. 내부의 데이터를 외부에서 볼 수 없는 특징입니다.

 

클래스와 객체Class & Instance는 붕어빵틀과 붕어빵(이거는 뭐 국룰ㅋㅋㅋ)로 설명되는데 붕어빵틀(클래스)을 하나 만들면, 거기에 몇번이고 붕어빵(인스턴스)을 찍어낼 수 있는 것으로 컴공에서는 자주 예시를 듭니다.

 

상속성Inheritance은 말그대로 상속받는다는 말인데, 클래스로부터 생성된 객체가 부모인 그 클래스에서 선언된 멤버들을 가지고 생성됨을 의미하며, 다형성Polymorphism은 같은 이름의 하나의 기능이 객체에 따라 다르게 동작하는 것을 의미합니다. 여기에는 Overloading과 Overriding이 있습니다. 이것은 좀 기니까 추후에 기회가 되면 언급하겠습니다. 검색 ㄱㄱ!

 

이정도로 C++의 개요에 대해서 알아보았습니다.

 

틀린 부분 지적은 항상 환영입니다!!

 

그럼 이만 글을 줄입니다.📝

'STUDY LOG > C\C++' 카테고리의 다른 글

C++ 접근 지정자  (0) 2021.10.04
C++ 생성자/소멸자  (0) 2021.10.04
C++ 시작하기  (0) 2021.10.04
프로그램 설계 도구  (0) 2021.09.27