C++언어 공부/개념 공부

2024.01.24 C++ 언어 공부 1일 차

코딩입문시작 2024. 1. 24. 16:39

Visual Studio 2022 다운로드 
설치 파일 -> C++ 을 사용한 데스크톱 개발 체크 -> 설치 시작

 

C++ 언어?

 

덴마크의 컴퓨터 과학자 비야네 스트로스트룹(Bjarne Stroustrup) C언어를 바탕으로 만들었다. 1979년에 C언어에서 직접적으로 파생된 C with Classes라는 이름의 언어로 시작되었다가, 1983년에 지금의 이름을 갖게 되었다. 그리고 객체지향  및 일반화 프로그래밍과 같은 멀티 패러다임을 지원하는 프로그래밍 언어 이다. C언어에서 ++라는 것은 원래 값에 1을 더해서 대입하라는 뜻이다. C는 B 언어를 계승한다는 의미에서 C가 되었는데 왜 D가 아니라 C++가 되었냐 하면, C 언어를 거의 그대로 두고 필요한 만큼만 향상시켰기 때문이라고 한다. 

 

[출처] C++ - 나무위키 (namu.wiki)

 

C++ - 나무위키

초기 C++가 C언어를 기반으로 시작했기 때문에 지금도 대부분의 C 프로그램은 C++ 컴파일러에서도 문제없이 컴파일된다. 초기 C++ 컴파일러는 일단 C++ 코드를 C로 변환하고 그걸 C로 재컴파일하는

namu.wiki

 

C++

  • 하드웨어의 발달에 따라 사무용을 넘어서 C언어 Tool에서 발전된 언어 
  • 개발인력을 줄이고 C언어에서 클래스를 도입하여 C++이 탄생
  • 절차지향 →  객체지향
  • ex) 라디오-> 조립키트  // 건전지, 트랜지스터, 저항, ...
  • 하나씩 꺼내오는 식 (객체지향), 임베디드 관련
  • C++은 C언어에 여러가지 기능을 추가하거나 개선하여 만들어진 C의 상위버전이다.
    그렇기에 C 코드는 C++ 컴파일러에서도 별다른 수정없이 컴파일 된다. 
    가장 큰 차이점은 클래스를 지원한다는 것이다. 초기 이름이 C with Classes
  • C의 대부분의 특징을 포함하고 있으므로 시스템 프로그래밍에 적합할 뿐만 아니라 클래스, 연산자 중복, 가상 함수 등과 같은 특징을 갖추고 있어 객체 지향 프로그래밍에 적합하다. 또한 C와 일치하는 부분이 C++를 널리 대중적인 언어가 되는데 도움을 주었다.

 

 

C++언어의 역사와 탄생

 

1980년대까지 전세계적으로 가장 많은 사람들에게 사랑을 받고 가장 널리 사용된 프로그래밍 전문 언어는 C이다. 하지만 C언어 역시 한계에 부딪치게 되었고 이에 따라 고도로 복잡한 프로그램을 관리하기 위하여 C++가 탄생하게 되었다.
C++는 처음 소개된 이후로 1985년과 1989년, 그리고 C++에 ANSI표준을 적용하기 시작한 시기 등 3번에 거처 개정되었다. 1994년에 최초로 표준안이 발표되었으며 ANSI C++위원회는 사실상 스트루스트럽(C개발자)이 설정한 모든 사양을 그대로 수용하고 그외의 약간의 사양을 덧붙였다. 그렇기 때문에 C++는 C프로그래머가 쉽게 C++를 사용할 수 있다는 관련성에서 큰 장점이 있다.

 

객체지향 프로그래밍은 뭐야? (OOP : Object Oriented Programing)

 

C++는 흔히 객체지향적 언어라고 한다. 객체 지향 프로그래밍은 새로운 방식의 프로그래밍 접근 방법이다. 프로그래밍이 탄생한 이후로 그 방식은 많은 변화를 겪었는데, 프로그래밍이 현격하게 다른 변혁을 겪을 때마다 새로운 접근 방식이 나타나 프로그래머가 그 전 단계보다 훨씬 더 복잡해진 프로그램을 처리할 수 있도록 도왔다. 예전의 구조적인 프로그래밍은 복잡한 프로그램 작성 시 프로그램의 규모가 일정 한계를 넘으면 가끔씩 실패하는 경우를 제외하고 상당히 우수한 기능을 해왔지만 그 보다 좀 더 복잡한 프로그램을 쓸 수 있는 새로운 프로그래밍 방식이 필요했다. 그래서 탄생한 것이 객체 지향 프로그래밍이다. 이는 구조적인 프로그래밍에서 사용되는 개념들을 최대한 활용하여 종전과는 다른 방식으로 이러한 개념을 엮어내는 역할을 한다.

 

-----------------------------------------------------------------------------------------------------------------------------------

 

#include <iostream>

 

  • cout 출력 객체와 cin 입력 객체가 정의되어 있다.
  • #include <stdio.h> 와 같은 역할이라고 보면 된다.

cout

  • << (삽입) 연산자 다음에 출력할 데이터를 적는다.
  • 데이터의 타입은 출력 객체가 알아서 판단한다.
  • C언어처럼 서식을 지정할 필요 없이 편리하게 사용가능하며, 서식이 불일치 하여 생기는 문제점도 없다.
  • ex) std::cout << "hello" << std::endl // endl 은 줄바꿈을 의미한다.

cin

  • >> (추출) 연산자 다음에 입력한 값을 대입받는 변수를 작성한다.
  • 마찬가지로 변수의 타입은 구분하지 않아도 된다.

printf, scanf와 대비되는 장점

  • 1. 사용 방법이 직관적이다.
  • 2. 데이터의 타입을 자동으로 판별하기 때문에 안전하다.