[C++]Chapter01 C 언어 기반의 C++
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;
}