C++

Ubuntu Korea Community Wiki
imported>Drake님의 2017년 3월 12일 (일) 20:47 판 (새 문서: = C++ 학습을 위한 준비 = * C와 C++의 차이점: C++은 C에 객체지향 개념을 도입한것. 현재는 STL과 Boost 덕분에 두 언어는 완전히 다르다고 볼 수...)
(차이) ← 이전 판 | 최신판 (차이) | 다음 판 → (차이)
둘러보기로 이동 검색으로 이동

C++ 학습을 위한 준비

  • C와 C++의 차이점: C++은 C에 객체지향 개념을 도입한것. 현재는 STL과 Boost 덕분에 두 언어는 완전히 다르다고 볼 수 있다.
  • 절차지향 프로그램: C나 Basic으로 작성하는 프로그램은 함수를 위주로 하는 구조화된 방식이었음. 프로그램의 시작을 주도하는 main()함수의 내용을 순차적으로 수행함. 일반적으로 함수를 중심으로 프로그램을 설계하고 거기에 필요한 데이터를 정의함.
  • 객체지향 프로그램: 객체지향 프로그래밍은 프로그램이 일정한 순서에 의해 진행되지 않음. 객체들로 이루어진 프로그램에서 '사건'이 일어나면 그에 따른 처리를 하는 식으로 프로그램이 진행됨. 객체지향 프로그래밍은 프로그램을 작성하기 위해 필요한 오브젝트들을 먼저 생각함. 객체는 결국 클래스 설계가 중점임.

객체지향 프로그래밍의 특징

  • Encapsulation: 안의 내용을 몰라도 api문서만 가지고 거의 완성된 프로그램을 다룰수 있다는 느낌을 줌.
  • 다형성, 함수 오버로드: 함수나 연산자가 자료구조에 따라 다르게 동작할 수 있음.
  • 상속: 특정 객체의 성격을 다른 객체가 상속받을 수 있다. 비슷한 오브젝트를 여러번 재정의할 필요가 없다.

C++ 컴파일러 설치와 사용법

<source lang="bash"> sudo apt-get install g++ </source>

C++ 프로그램 구조 파악하기

  • 다들 예상했겠지. 간닷 헬로월드

<source lang="c++"> // Hello World: Defines the entry point for the console application

  1. iinclude <iostream>

int main() {

 std::cout << "Hello World!" << std::endl;
 return 0;

} </source>

  • main(): 엔트리 포인트는 결국 main()이당
  • { }: 뭉탱이. 함수나 반복문이나 조건문같은건 뭉탱이 단위로 실행하게 됨.
  • //, /* */: 주석. 컴파일러가 해석 안할 내용. 사람한테만 필요한 내용 적을때 씀.
  • #include: 파일을 불러와서 덧붙이라는 내용.
  • std::cout: cout은 화면에 출력하는 객체임. 앞에 붙은건 namespace임.
  • ;: 끝에 붙여주는 마침표같은거. 문장의 끝이라고 알려주지 않으면 컴파일러는 문장의 끝인지 모른다.

C++ 콘솔 입출력

구조체, 레퍼런스 변수

클래스와 객체

클래스 설계

생성자

객체 포인터

객체의 다양한 활용

객체 배열

객체 포인터

this

전달인자로 객체를 사용하는 함수

정적 멤버 변수와 정적 멤버 함수

연산자 재정의

함수로 구현

연산자 오버로딩

프렌드

배열 클래스

클래스 내에서 메모리 동적 할당

복사 생성자

각종 연산자 오버로딩

스택 추상 클래스

스택 클래스에 대한 설계

스택 클래스 업그레이드

상속성

상속성이란

오버라이딩

가상함수와 추상 클래스

Upcasting과 Downcasting

정적 바인딩과 동적 바인딩

Virtual 키워드를 사용한 가상 함수

가상 소멸자

텍스트 파일

파일 처리 절차

함수를 이용한 파일 입출력하기

랜덤 파일

순차 파일에서 레코드 단위로 읽기

랜덤 파일 처리

템플릿

템플릿 함수 만들기

템플릿 클래스 만들기

예외처리

예외 상황 발생

C++에서 예외처리 구문

호출한 함수에 예외 전달

사용자 정의 예외

String 클래스 디자인

C++에서 제공하는 String Class

문자열 클래스 설계하기

Namespace

Namespace의 필요성

using

STL

STL 컨테이너

STL 컨테이너가 제공하는 함수