[C++기초] 3. 일부 새로운 C++ 기능

Index

  1. Bool 데이터형
  2. 참조(Reference)
  3. 컴퓨터는 참조가 뭔지 알까?
  4. 참조와 관련된 코딩표준 조금

Bool 데이터형

C의 경우

if(IsStudent() == 0)
{
	// ...
}
if(IsStudent() == <non-zero>)
{
	// ...
}

or
    
#define TRUE 1
#define FALSE 0

C++의 경우

if(IsStudent() == false)
{
	// ...
}

if(Isstudent() == true)
{
	// ...
}

참조(Reference)

값에 의한 호출 (C/Java/C#)

void swap(int arg1, int arg2)
{
	int temp = arg1;
	arg1 = arg2;
	arg2 = temp;
}

int main()
{
	int num1 = 10;
	int num2 = 20;
	
	swap (num1, num2);
}

매우 단순화시킨 예

참조에 의한 호출

void swap(int* arg1, int* arg2)
{
	int temp = *arg1;
	*arg1 = *arg2;
	*arg2 = temp;
}

int main()
{
	int num1 = 10;
	int num2 = 20;
	
	swap(&num1, &num2);
}

매우 단순화시킨 예

C++에서의 참조

포인터 & 참조

포인터

void swap(int *number1, int*number2)
{
	int temp = *number1;
	*number1 = *number2;
	*number2 = temp;
}

참조

void swap(int& number1, int& number2)
{
	int temp = number1;
	number1 = number2;
	number2 = temp;
}

참조의 장점

컴퓨터는 참조가 뭐지 알까?

기억할 점

참조와 관련된 코딩 표준

어떻게 해야 할까?

방법1

방법2

방법3

  • 읽기 전용 매개변수르는 상수 포인터로 하라
  • 출력 결과용 매개변수는 포인터로 하라

  • TryDivide(&a, b, c);

C#은 이걸 더 잘 고쳤음