-
[C++] basicsC++ 2022. 12. 23. 13:26
1. cout (console out )
std::cout<<"Thomas Tuchel"<<std::endl
cout = console out
<< 사용
2. cin (console in)
char name[10]; std::cin>>name;
cin 은 표준입력장치인 키보드를 연결하는 C++ 입력스트림 객체
>> 연산자
스트림 추출 연산자
입력 스트림에서 값을 읽어 변수에 저장
cin의 특징
입력 버퍼를 내장하고 있음
공백 있으면 그 전꺼를 저장.
즉, 구분자가 공백(빈칸)이다
Enter키가 입력되면 비로소 cin의 입력버퍼에서 값을 읽어 변수에 저장
+) c에서는 scanf하면 서식지정자로 %d %f %lf %s 를 무조건 써줘야하는데 cin은 그런거 없다!
cin은 변수타입 보고 알아서 해석해준다!
3. \n
std::endl;
endl = end line
1 아님!
4. 범위지정연산자(::)
class::
해당 class 참조해라
namespace::
해당 namespace 참조해라
예를 들어, std::cout 은 std namespace의 cout 함수를 써라 이 뜻임!
5. namespace
namespace란 "이름공간"인데 이 개념은 함수의 충돌을 방지하기 위해 나온 개념.
만약 프로젝트 시 다양한 모듈을 묶어 컴파일하는데 name()이란 함수가 두 개면? -> 컴파일에러남 ㅇㅇ
따라서 각 모듈마다 namespace를 지정하여 컴파일 시 같은 이름의 함수가 존재해도 충돌이 안나게끔 해주는거다!
namespace는 고유한 이름공간을 설정하기 위해 만든 것.
class function 변수 등 다 선언가능
기존 동일한 이름의 것들과 충돌을 방지하기 위해 나온 기능
namespace는 함수나 구조체 클래스 변수 등의 소속을 정해주는 것
다른 namespace라면 같은 이름의 함수, 클래스, 변수를 가지고 있어도 상관 없다!
프로그램할때 using을 통해 어떤 namespace를 사용할지만 정해주면 문제가 없어진다
#include <iostream> namespace mbappe { void name() { std::cout << "kylian mbappe" << std::endl; } } namespace messi { void name() { std::cout << "lionel messi" << std::endl; } } int main() { mbappe::name(); messi::name(); return 0; }
mbappe와 messi 둘 다 name()을 가지고 있어 namespace를 명시해줌으로써 컴파일시 어느 name()함수를 호출해야하는지 명시해주고 있다.
5. using keyword
위와 같이 std::cout, std::cin을 쓰는건 매우 불편하고 귀찮음.
따라서 using 키워드를 사용하여 namespace를 #include 같은 느낌으로 미리 언급해주고 " namespace:: " 형식 없이 함수를 호출할 수 있따!
#include <iostream> using namespace std; int main() { // std:: 를 생략ㄱㄴ! cout << "my name is minminmin" << endl; return 0; }
6. ifndef endif
#include 문을 사용하기 전에 쓰는 것으로
한 개의 헤더파일이나 소스파일을 중복해서 include 한 것을 방지하기 위해 쓴다
#ifndef "파일명" : 만약 해당 파일명이 없으면 #endif 가 나올때까지 코드 추가해라
'C++' 카테고리의 다른 글
[C++] 복사생성자의 호출시기 (0) 2022.12.30 [C++] 복사생성자(copy constructor) (0) 2022.12.27 [C++] 생성자(constructor) (0) 2022.12.26 [C++] class (0) 2022.12.24 [C++] 참조자 (reference) (0) 2022.12.23