#include <iostream>
int main() {
std::cout << "Hello, World!!" << std::endl;
return 0;
}
C++에서의 Hello World!! 출력 코드다.
C++은 기본적으로 C의 문법을 기반으로 따르기에
헤더 추가 구문, main 함수 선언 방식, return 0;를 붙여주는 등 비슷한 점이 많다.
std::cout <<
std는 iostream의 std namespace에서 가져온건데, C++의 표준 함수들은 이 iostream에 포함되어 있다.
std::cout << /* 출력할 것 */ << ... << /* 출력할 것 */;
std::endl은 그냥 C의 (/n)개행의 역할과 같다.
(입출력에 관한 부분은 후에 자세히 다룬다.)
어디에 소속되어 있는 객체인지 구분할 수 있게 해주는 용도이다.
namespace header1 {
int foo();
void bar();
}
header1 객체에 foo, bar가 선언되어
header1:foo();
이런 식으로 foo를 가져올것이다.
using header1::foo;
-> header1의 foo만 쓴다는 의미
using namespace header1;
-> header1의 객체들은 아무것도 안붙이고 사용한다는 의미 (header1:: 같은것을 안붙이고 그냥 foo만 쓰는 식)
그렇다면 using namespace std;
를 이용해서, 표준 함수들은 모두 생략하는 방식은?
-> std는 매우 거대하고 주기적으로 새로운 함수들이 추가되고 있어서, 괜히 썼다가 오류가 발생할 수 있다. 그냥 쓰자...!
결과적으로 C의 문법으로 위 4개의 함수들을 사용하는데 전혀 지장이 없다. 하지만 C++인데 C보다 더 진보된 무언가가 있을테니, 그 부분만 알아보자!
C의 for문에서는 항상 코드 상단에 미리 선언하고 시작했다.
하지만 C++에서는 변수 사용 직전 위치에서 선언해도 된다.
for (int i = 1; i <= 10; i++)
{
sum += i;
}
요런식으로 int i = 1; 로 박고 시작해도 된다. (python이 생각난다)
C의 scanf 역할을 하는 입력 함수로는 C++에선 std::cin을 쓴다.
std::cin >> user_input;
요렇게 쓰면 user_input에 값을 입력 받는다.
scanf에서 주소값 넣는다고 & 쓰고 그랬는데 그런거 없이 그냥 쓰면 된다. 또한 int인지 char인지 자료형을 묻지 않는다. (편해졌다)