C++ 시작, 준비

MOON·2022년 9월 23일
0
post-thumbnail

C++ 특징

호환성, 객체 지향, 시간체크, 효율성 저하 최소화

  1. 기존에 작성했던 c언어로 작성했던 프로그램과의 호환성을 유지한다.
    c언어로 작성되어 컴파일된 목적파일, 라이브러리를 링크하여 사용할수 있다.

  2. 소프트웨어 재사용을 통해 생산성을 높이고 관리, 유지, 보수를 쉽게 하기 위해
    캡슐화, 상속, 다형성등 객체 지향 개념을 도입한다.

  3. 시간관리를 확실히 하여 실행 시간 오류의 가능성을 줄이고 디버깅을 돕는다.

  4. 객체지향의 도입으로 멤버함수이 호출이 많아진다. 실행시간이 저하되기 때문에
    멤버함수에 인라인 함수를 도입하는 등 시간 저하를 막는다.


C언어에 추가된 기능

함수중복, 디폴트 매개 변수, 참조, 참조에 의한 호출,
new와 delete연산자, 연산자 재정의, 제네릭 함수와 클래스

워낙 많아서 천천히 진행할려고 한다.

C++의 객체 지향

객체와 캡슐화

캡슐화는 알약처럼 데이터를 감싸서 외부의 접근으로부터 보호한다.
여기서 캡슐은 클래스이며 클래스는 객체를 정의하며 객체는 클래스에서 생겨난다.
public, private로 변수를 선언하며 외부에서는 public에만 접근 가능하다.


상속성

상속이란 부모의 모든것을 물려받는것과 같다. 부모 클래스에서 선언된 멤버들도 함께 가지고 만들어진다.
코드의 재사용을 높여 생산성을 높인다. 정말 편리한 기능이다.

다형성

하나의 기능이 서로 다르게 보이거나 다르게 작동하는 현상이다.
이것은 피연산자의 따라 다르게 보여진다고 생각하면 된다.
덧셈이 될수있고 문자열을 붙였다 할수있듯이 다양하게 결과를 낸다.

객체지향 장점

소프트웨어 생산성 향상 - 짧은 시기내에 새로운 소프트웨어를 만들어야 되는데 만들어진 클래스를 상속받거나 재사용하여 시간, 부담을 줄여주어 생산성을 향상시킬수 있다.

실제와 관한 쉬운 모델링 - 예전과 달리 요즘은 다양한 물건들의 상호작용으로 묘사하는 것이 더 적합하다. 하나의 흐름으로 이루어지는 것이 아니라 다양한게 이루어져 있다.

개발과정

C++은 확장자가 .cpp이다.
보통 개발의 모든 과정을 진행할수 있는 통합 개발 환경을 이용한다.
다른 텍스트 편집기도 가능하지만 이제부터 비주얼 스튜디오를 이용하겠다.

컴파일 - 소스코드 완료시 컴파일러는 기계어 코드로 변환하여 목적파일을 생성한다.
링킹 - 목적파일은 바로 실행이 안된다. 링킹은 실행에 필요한 기계어 코드를 확보하여 하나의 실행파일로 만드는 과정이다.
실행, 디버깅 - 실행시 오류가 있을경우 오류 위치를 발견, 문제의 원인을 찾아 수정하는 과정을 디버깅이라 한다. 디버거라는 소프트웨어를 사용하며 라인단위로 실행한다.

profile
나만의 공간

0개의 댓글