#include <iostream>

'#'은 전처리기이다. 전처리기는 컴파일을 시작하면, 우선적으로 처리한다.

#include <iostream>을 사용하면 'iostream'이라는 헤더 파일의 모든 내용을 복사해오도록 요청한다. 이렇게 하면 헤더 파일의 내용을 코드 파일에서 사용할 수 있다

 

<>는 컴파일러가 설치된 폴더에서 헤더파일을 찾음

"" 는 개발자가 지정해 놓은 경로


namespace

어떤 변수나 함수의 소속을 알려주는 기능

 

A.h , B.h (헤더 파일은 일반적으로 선언만 포함하므로 어떻게 구현되는지 정의하지는 않는다)

#ifndef PRINTA_H
#define PRINTA_H

namespace printA
{
    void print();
}

#endif

A.cpp , B.cpp

#include <iostream>
#include "printA.h"

void printA::print()
{
    std::cout << "A" << std::endl;
}

main

#include "printA.h"
#include "printB.h"

int main()
{
    printA::print();
    printB::print();
}

:: 는 C++에서 가장 우선순위가 높은 연산자로, 범위 지정 연산자

범위 지정 연산자(::)는 여러 범위에서 사용된 식별자(identifier)를 식별하고 구분하는데 사용

 

만약 using namespace를 사용하여 print함수를 사용하려할때 

printA / printB 모두 print를 가지고있어 어떤 namespace에있는 print를 참조할지 컴파일러가 구별을 못함

그래서 namespace를 지양하고 범위 지정 연산자(::)를 지향 하는것

+ Recent posts