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