C++ 강의 돌입 전, 사이트를 통해 공부
C++ 튜토리얼 사이트
C++는 게임 개발에 있어 가장 많이 사용되는 언어 중 하나로,
C언어의 확장팩이기에 두 언어 사이에 유사점이 많다.
(both languages have almost the same syntax.)
연습에는 C++ Try it Yourself 사이트를 이용한다
Try it Yourself
C++는 무엇인가?
C++는 크로스 플랫폼 언어로, 고성능 어플리케이션에 사용된다
개발자가 시스템 리소스와 메모리를 고도로 컨트롤 할 수 있게 해준다.
왜 C++를 써야하는가
C++는 가장 인기있는 프로그래밍 언어 중 하나로,
오늘날 OS, GUI, 임베드 시스템 등 다양한 곳에서 사용된다
C++는 '객체 지향 프로그래밍 언어'로
프로그램에 명확한 구조를 제공하고 "코드 재사용" 을 통해 개발 비용을 절감할 수 있다
또한, C, C#, Java와 유사한 면이 있어,
개발자가 C++와 서로 전환하기 용이하다.
C와 C++의 차이
C와 C++는 매우 유사하지만,
가장 큰 차이점은 : C++ 는 "클래스" 와 "오브젝트" 를 지원한다는 것이다.
C++를 시작하기 위해선 2가지가 필요한데 :
사용할 수 있는 종류는 많지만, 여기서는 "IDE"를 사용한다
이 부분은 필요시 대여장비에서 진행하고,
연습용 사이트가 있기 때문에 그걸로 대체한다
IDE (Integrated Development Environment)는 코드를 짜고 컴파일하는데 사용된다
(웹 기반 IDE도 비슷하게 동작하지만, 기능 제한이 있을 수 있다)
Code::Blocks 라는 프로그램을 사용할 예정
Codeblocks
해당 코드를 해체 분석 해보자 :
#include <iostream>
using namespace std;
int main() {
cout << "Hello World!";
return 0;
}
#include <iostream> 은
헤더 파일 라이브러리 (header file library)로,
오브젝트를 입력하고 출력할 수 있게 해준다 ex) 5행에 쓰인 cout
헤더 파일은 C++ 프로그램에 기능을 추가하는 것
using namespace std; 은
"standard library" 에 있는 오브젝트와 변수들의 이름을 사용할 수 있다는 의미.
프로그램에 (거의) 항상 나오는 구문이라고 생각하면 편하다int main() 또한 항상 나오는 구문으로,
"함수" 라고 부르며,
{} 중괄호 안에 있는 모든 코드가 실행된다
5행에 있는 cout 은 "see-out" 이라고 부르며,
삽입 연산자 (insertion operator) 인 << 와 함께 "텍스트 출력/표시" 에 쓰이는 오브젝트
지금 코드 예제에서는 "Hello World" 를 출력한다
※ C++는 대소문자를 구별하며,
cout와Cout는 엄밀히 다른 기능을 가지고 있는 다른 오브젝트다.
또한 모든 C++ 문장은 세미콜론;으로 끝난다
6행의 return 0; 는 메인 함수를 종료시켜준다.
메인 함수가 제대로 끝나도록, 함수의 구분을 명확히 해줄 수 있도록
마지막에 중괄호를 닫는 걸 까먹으면 안된다.
조금 전 '거의 항상' 사용된다고 언급한
using namespace std 문장은 생략할 수도 있는데,
몇몇 오브젝트의 경우
std 키워드와 :: 연산자 (operator) 를 사용해 문장을 생략할 수 있다
#include <iostream>
int main() {
std::cout << "Hello World!";
return 0;
}
std:: 를 지우면 에러로그가 뜬다
'컴퓨터 프로그램' 이라는 건 컴퓨터가 '실행해야할'(executed) '명령들'(instructions)의 목록.
프로그래밍 언어에서는 이런 '명령'들을 "statements" 라고 부른다
C++ 프로그램에는 문장이 매우 많이 들어있고,
이 문장들은 쓰여진 순서대로 실행된다 (행 순서)
cout << "Hello World!";
cout << "Have a good day!";
return 0;
방금
std::를 활용했던 문장에 이어서 써보면,
맨 위에 헤더 파일 라이브러리,using namespace std가 없기 때문에
매번std::를 붙여줘야 한다.
연산자 << 와 함께 쓰이는 cout 오브젝트는
값을 출력(output)하고 텍스트를 표시(print)하는 데 사용된다
표시할 텍스트를 "" 로 감싸는 것만 주의하면 된다
output, print 둘다 '출력'으로 해석할 수 있기 때문에 의미차이에 주의
cout 는 몇 개든 쓸 수 있지만,
텍스트가 끝나고 개행해주지 않는다 는 걸 기억해야 한다

cout() 를 사용해서 숫자를 출력할 수도 있다
하지만 텍스트와 다르게, 숫자는 "" 로 감쌀 필요는 없다
설명에서는
cout()라고 표현했지만, 실제 코드에서는 그냥cout를 사용하는 모습
이를 이용해 수학 계산도 할 수 있다
물론
cout는 개행해주지 않기 때문에 이어서 나온다
출력 화면에 개행해주기 위해선 \n 을 사용한다
#include <iostream>
using namespace std;
int main() {
cout << "Hello World! \n";
cout << "I am learning C++";
return 0;
}

<< 연산자를 추가해서 별개로 세팅할 수도 있다
#include <iostream>
using namespace std;
int main() {
cout << "Hello World!" << "\n";
cout << "I am learning C++";
return 0;
}
\n 을 2개추가하면 두번 개행
= 빈 행을 하나 만들어준다
#include <iostream>
using namespace std;
int main() {
cout << "Hello World!" << "\n\n";
cout << "I am learning C++";
return 0;
}

같은 효과로 동작하는 endl manipulator(조정자)도 있다
(1이 아니라 소문자 l)
<< 연산자는 필요.
#include <iostream>
using namespace std;
int main() {
cout << "Hello World!" << end1;
cout << "I am learning C++";
return 0;
}
보통은 \n 을 자주 사용한다.
escape sequence 라고 불리며,
커서를 강제적으로 다음 행의 시작 지점으로 보낸다 => 개행
escape sequence, 탈출 시퀀스 에는 다른 종류도 있는데,
\t : Tab 버튼 눌렀을 때처럼 띄어준다

\\ : '\' 를 삽입해준다.
\" : '"' 를 삽입해준다.
마크다운에서의 '\' 쓰임새를 생각하면 2개가 들어가야하는 이유가 보인다