되새김질하는 C++ 1

be ko·2021년 8월 31일
0

1. Hello World!

#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)개행의 역할과 같다.

(입출력에 관한 부분은 후에 자세히 다룬다.)

2. namespace(이름공간)

어디에 소속되어 있는 객체인지 구분할 수 있게 해주는 용도이다.

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는 매우 거대하고 주기적으로 새로운 함수들이 추가되고 있어서, 괜히 썼다가 오류가 발생할 수 있다. 그냥 쓰자...!

3. C와 C++ (if, for, while, switch,...)

결과적으로 C의 문법으로 위 4개의 함수들을 사용하는데 전혀 지장이 없다. 하지만 C++인데 C보다 더 진보된 무언가가 있을테니, 그 부분만 알아보자!

1) for문에서의 변수 선언

C의 for문에서는 항상 코드 상단에 미리 선언하고 시작했다.
하지만 C++에서는 변수 사용 직전 위치에서 선언해도 된다.

for (int i = 1; i <= 10; i++) 
{
sum += i;
}

요런식으로 int i = 1; 로 박고 시작해도 된다. (python이 생각난다)

2)std::cin

C의 scanf 역할을 하는 입력 함수로는 C++에선 std::cin을 쓴다.
std::cin >> user_input;
요렇게 쓰면 user_input에 값을 입력 받는다.

scanf에서 주소값 넣는다고 & 쓰고 그랬는데 그런거 없이 그냥 쓰면 된다. 또한 int인지 char인지 자료형을 묻지 않는다. (편해졌다)

0개의 댓글