본문 바로가기

C++/공부 정리

함수 오버로딩, public & private

함수 오버로딩: 같은 이름의 함수를 사용할 수 있음. 대신 인자로 구분이 가능해야 한다. 

 

private : 사용자는 호출 할 수 없지만 제작자는 호출 할 수 있음. ( 캡슐화한다고 생각하면 됨)

public : 사용자에게도 공개하는 부분

 

class는 아무것도 명시하지 않으면 private이다. 그러나 struct는 default가 public이다.

 

재귀함수 사용

9 8 7 6 5 4 3 2 1 도착 1 2 3 4 5 6 7 8 9 순으로 출력하기

#include <iostream>
using namespace std;
void run(int level)
{
    cout << level << " ";
    if(level == 0)
    {
        cout << "도착 ";
        return;
    }
    run(level-1);
    cout << level << " ";
}
int main()
{
    run(9);
    return 0;
}

배열 값 더해주기

#include <iostream>
using namespace std;
int arr[5] = {4, 2, 5, 3, 6};
void run(int level, int sum)
{
    if(level == 5)
    {
        cout << sum;
        return;
    }
    
    run(level+1, sum + arr[level]);
}
int main()
{
    run(0, 0);
    
    return 0;
}

배열값 더해주면서 출력하고 다시 빼면서 출력

#include <iostream>
using namespace std;
int arr[6] = {4, 1, 2, 3, 4, 5};

void run(int level, int sum)
{
    cout << sum << " ";
    if(level == 0)
    {
        return;
    }
    run(level-1, sum + arr[level-1]);
    cout << sum << " ";
}
int main()
{
    run(5, arr[5]);
    return 0;
}