C언어에 객체 지향 프로그래밍 기능을 추가하여 만든 언어이다.
객체 지향 프로그래밍 -> 알고리즘을 중요시했던 절차적 프로그래밍과 달리 데이터를 중요시 한다.
🧐 예를 들어,
직원들의 월급을 계산하는 프로그램이라면 먼저
직원들에 대한 데이터(이름, 직위, 연봉)을 하나의 클래스로 표현한다.
월급을 계산하는 알고리즘 설계는 그 이후이다.
🧐 용어 정리
클래스 : 객체를 설계하기 위한 설계도 역할.
캡슐화(encapsulation) :데이터에 대한 불필요한 접근을 차단하고 클래스들을 독립적으로 작성할 수 있다.
상속(Inheritance) : 비슷한 클래스가 존재한다면 그 클래스를 가져다 사용하는 것
다형성(polymorphism) : 같은 이름의 함수나 연산자를 중복 정의하여 상황에 맞게 프로그램이 적절한 함수를 선택하도록 하는 것
이러한 객체 지향의 개념들의 공통적인 목표 -> 코드의 재사용(reuse)
처음 코드를 작성할 때 제일 먼저 마주하게 되는 코드들
#include <iostream>
#은 전처리기. 즉, 컴파일을 하기전에 미리 처리해야하는 내용
#include는 특정 파일을 소스 코드안에 포함시킬 때 사용한다.
에는 입출력에 필요한 클래스와 객체들이 정의되어있다.
using namespace std;
using은 이름 공간을 지정하는 지시어이다.
표준 시스템 라이브러리를 위한 이름 공간은 std
int main()
프로그램 실행 시 가장 먼저 실행되는 부분.
모든 C++ 프로그램에서는 반드시 main()함수가 하나 있어야한다.
함수 헤더부분인 int main()은 외부와 함수 사이의 인터페이스 역할을 한다.
int -> 함수가 반환하는 값의 타입이 int이다
main() -> 함수의 이름은 main이고 빈괄호만 있다는 것은 아무런 데이터도 받지 않는다는 뜻이 다.
그렇다면 이 int main(){}함수는 누가 호출할까? 바로 윈도우10같은 운영체제가 호출한다.