씹어먹는 C++ 1일차
❗참고 : https://modoocode.com/135
첫 c++ 프로그램 분석하기
#include <iostream>
int main() {
std::cout << "Hello, World!!" << std::endl;
return 0;
}
- c와 다르게 c++은 header include 시 ‘.h’ 가 붙지 않음
namespace
- std : c++ 표준 라이브러리의 모든 함수, 객체 등이 정의되어 있는 namespace
- 어떤 정의된 객체에 대해 어디 소속인지를 지정하는 의미
std::cout
- std namespace에 정의된 cout임을 의미
#include "header1.h"
#include "header2.h'
using header1::foo;
int main() {
foo(); // header1에 있는 함수를 호출
return 0;
}
- header:: 없이 header1 namespace 내의 foo 함수를 사용하는 방법
#include "header1.h"
#include "header2.h"
using namespace header1;
int main() {
foo(); // header1에 있는 함수를 호출
bar(); // header1에 있는 함수를 호출
return 0;
}
- “using name space header1
- 해당 cpp 내에서 “header1::” 없이 해당 header 에 선언된 파일을 사용하는 방법
이름 없는 공간
#include <iostream>
namespace {
//이 함수는 이 파일 안에서만 사용 가능
// static int OnlyInThisFile() 과 동일한 의미
int OnlyInThisFile() {}
// static int x 와 동일
int only_in_this_file = 0;
} // namespace
int main() {
OnlyInThisFile();
only_in_this_file = 3;
return 0;
}
- header file을 통해 include 되더라도 익명의 namespace안에 정의된 모든 것들은 사용할 수 없음
C++와 C언어의 공통 문법 구조
- 변수 정의
- 대부분 C와 비슷 (변수의 시작은 숫자가 오면 안됨)
- google c++ 변수이름 짓기 Guide
- 변수 : 이름 내 띄어쓰기는 _로 구분
- 함수 : 이름 내 띄어쓰기는 대문자로 구분
int arr[10];
int *parr = arr;
int i;
int *pi = &i;
-
포인터 : *와 &의 역할은 그대로 유지
-
다른 문법 구조
- 변수의 선언 위치가 고정되어 있지 않음
- 아래 문법은 C와 동일함
- 반복문 (for, while)
- 조건문 (if-else, switch)
- 제어문 (break, continue)
#include <iostream>
int main()
{
int win_number = 10;
std::cout << "숫자를 입력하세요" << std::endl;
int input_number;
while (true) {
std::cout << "정수를 입력하세요 : ";
std::cin >> input_number;
if (win_number == input_number) {
std::cout << "정답입니다" << std::endl;
break;
} else {
std::cout << "다시 정수를 입력하세요." << std::endl;
}
}
return 0;
}
- cout은 « 를 이용하여 출력
- cin은 »를 이용하여 사용자 입력을 출력함
- scanf 와 다르게 &와 변수 format을 지정해주지 않아도 cin이 알아서 처리함