2 minute read

C++ 버전의 Hello World 출력 프로그램

  • 헤더파일 선언 : #include <iostream>
  • 출력의 기본구성 : std::cout<<"출력대상1"<<"출력대상2";
  • 개행의 진행 : std::endl
#include <iostream>

int main(void)
{
    int num = 20;
    std::cout<<"Hello World!"<<std::endl;
    std::cout<<"Hello "<<"World!"<<std::endl;
    std::cout<<num<<' '<<'A';
    std::cout<<' '<<3.14<<std::endl;
    return 0;
}

// 실행 결과
// Hello World!
// Hello World!
// 20 A 3.14

scanf를 대신하는 데이터의 입력

#include <iostream>
int main(void)
{
    int val1;
    std::cout<<"첫번째 숫자 입력 : ";
    std::cin>>val1;
    int val2;
    std::cout<<"두번째 숫자 입력 : ";
    std::cin>>val2;
    int result = val1 + val2;
    std::cout<<"덧셈 결과 : "<<result<<std::endl;
    return 0;
}

한줄에 여러변수 입력 받기

#include <iostream>
int main(void)
{
    int val1, val2;
    int result = 0;
    std::cout<<"두개의 숫자 입력: ";
    std::cin>>val1>>val2;
    if(val1 < val2)
    {
        for(int i = val1 + 1; i < val2; i++)
        {
            result+= i;
        }
    }
    else
    {
        for(int i = val2+1; i < val1; i++)
        {
            result +=i;
        }
    }
    std::cout<<"두 수 사이의 정수 합: "<<result<<std::endl;
    return 0;
}

배열 기반의 문자열 입출력

#include <iostream>
int main(void)
{
    char name[100];
    char lang[200];
    std::cout<<"What is u r name? : ";
    std::cin>>name;
    std::cout<<"what is u r favorite lang? : ";
    std::cin>>lang;
    std::cout<<"My name is "<<name<<". \n";
    std::cout<<"My favorite lang is "<<lang<<". "<<std::endl;
    return 0;
}

함수 오버로딩의 이해 (같은 이름 다른 함수)


int MyFunc(int num)
{
    num++;
    return num;
}

int MyFunc(int a, int b)
{
    return a+b;
}

int main(void)
{
    MyFunc(20); // 인자 1개인 함수 호출
    MyFunc(30,40); // 인자 2개인 함수 호출
    return 0;
}

매개변수에 설정하는 디폴트 값

int MyFuncTwo(int a = 3, int b = 7)
{
    return a+b;
}

int main(void)
{
    std::cout<<MyFuncTwo()<<std::endl;
    return 0;
}

매크로 함수의 장점(성능 향상)을 취한 inline 함수

inline int SQUARE(int x)
{
    return x*x;
}
int main(void)
{
    std::cout<<SQUARE(13)<<std::endl;
    return 0;
}

이름 공간의 기본 원리

  • 존재하는 이름공간이 다르면 동일한 이름의 함수 및 변수를 선언하는 것이 가능하다.
  • 프로젝트 진행에 있어서 발생할수 있는 이름의 충돌 방지
namespace BestComImpl
{
    void SimpleFunc(void)
    {
        std::cout<<"BestCom이 정의한 함수"<<std::endl;
    }
}

namespace ProgComImpl
{
    void SimpleFunc(void)
    {
        std::cout<<"ProgComImpl이 정의한 함수"<<std::endl;
    }
}

int main(void)
{
    BestComImpl::SimpleFunc();
    ProgComImpl::SimpleFunc();
    return 0;
}


이름공간의 중첩

namespace Parent
{
    int num = 2;
    namespace SubOne
    {
        // Parent::SubOne
        int num = 3;
    }

    namespace SubTwo
    {
        // Parent::SubTwo
        int num = 4;
    }
}
  • std::cout : 이름공간 std에 선언된 cout
  • std::cin : 이름공간 std에 선언된 cin
  • std::endl : 이름공간 std에 선언된 endl

using을 이용한 이름공간의 명시

#include <iostream>
using std::cin;
using std::cout;
using std::endl;

int main(void)
{
    int num = 20;
    cout<<"Hello world"<<endl;

}
#include <iostream>
using namespace std;

int main(void)
{
    int num = 20;
    cout<<"Hello world"<<endl;
    
}

이름 공간의 별칭 지정과 전역 변수 접근


namespace AAA
{
    namespace BBB
    {
        namespace CCC
        {
            int num1;
            int num2;
        }
    }
}



int main(void)
{
    namespace ABC = AAA::BBB::CCC;
    ABC::num1 = 10;
    ABC::num2 = 20;
}

Categories:

Updated: