ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [C++] basics
    C++ 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