It won't hurt to try

[C++/윈도우프로그래밍응용]6. 함수 본문

C++/윈도우프로그래밍응용

[C++/윈도우프로그래밍응용]6. 함수

yongki.doki 2021. 9. 19. 19:27

sum 함수

#include <iostream>

using namespace std;

// 더하기
int sum(int num1, int num2)
{
    return num1 + num2;
}

int main()
{
    int num1 = 1;
    int num2 = 2;
    int result = sum(num1, num2);
    cout << num1 << " + " << num2 << " = " << result << endl;
}

c++은 절차적인 언어고, 빌드시 위에부터 순서대로 빌드하기 때문에

사용하고자 하는 함수가 먼저 선언되어있지 않으면 불러올수 없다는것을 깜빡하고 있었다.

나도 모르게 sum함수를 main보다 밑에 적었다가,, 왜 에러가 나고 있는지 알지 못했다 ...

sum함수를 main보다 밑에 선언하고 싶을때는 밑의 코드처럼 먼저 sum함수를 추상함수로 만들어 줍니다.

구현은 main보다 밑에서 ㅎㅎ

#include <iostream>

using namespace std;

// 추상함수
int sum(int num1, int num2); 
// 밑에 처럼 자료형만 적어도 가능
// int sum(int, int)

int main()
{
    int num1 = 1;
    int num2 = 2;
    int result = sum(num1, num2);
    cout << num1 << " + " << num2 << " = " << result << endl;
}

// 구현함수
int sum(int num1, int num2)
{
    return num1 + num2;
}

 

오버로딩(overloading)

#include <iostream>

using namespace std;

int sum(int, int);
int sum(int, int, int);

int main()
{
    int num1 = 1;
    int num2 = 2;
    int result = sum(num1, num2);
    cout << num1 << " + " << num2 << " = " << result << endl;
}

int sum(int num1, int num2)
{
    return num1 + num2;
}

int sum(int num1, int num2, int num3)
{
    return num1 + num2 + num3;
}

디폴트 함수(default function)

#include <iostream>

using namespace std;

int sum(int x, int y, int z=0, int w=0);

int main()
{
    int x = 1;
    int y = 2;
    int z = 3;
    int w = 3;
    // z, w는 초기화 되어있기 때문에, 인자를 전달해도 되고 안해도 된다.
    int result = sum(x,y);
    cout << "result : " << result << endl;
}

int sum(int x, int y, int z, int w) {
    return x+y+z+w;
}
300x250
300x250
Comments