Programming_Language

파이썬과 C++ 문법 차이 - 함수

카카오그래놀라 2020. 10. 27. 17:48

 

Python & C++

함수

void hello(){
    cout << "안녕하세요\n";
}
// return 값이 없을때, void

int three(){
    return 3
}
// 함수명 앞에 return 값의 형을 선언해줘야 함.

int sum(int x, int y){
    return x+y;
}

//python
// def hello():
//     print("안녕하세요")
//
// def three():
//     return 3
//
// def sum(x, y):
//     return x+y

 

재귀

void func(){
    func() // void 안붙여도 됨.
}

 

인라인 함수

#include <iostream>
using namespace std;

int max(int x, int y){
    if(x>y)
        return x;
    else
        return y;
}

// 인라인 함수
inline int max(int x, int y){if(x > y) return x; else return y;}

 

 

함수 프로토타입 선언

#include <iostream>
using namespace std;

// max 함수 선언; 함수 프로토타입 선언부.
// 프로토타입이 선언되어 있으면, max 함수가 main 함수 뒤에 있어도 실행가능함.
int max(int x, int y);

int main()
{
    int num1, num2, ans;
    
    ans = max(num1, num2);
    cout << ans;
    return 0;
}

int max(int x, int y){
    if(x > y)
        return x;
    else
        return y;
}

 

기본 인수 사용하기

#include <iostream>
using namespace std;

int max(int x, int y);

int main()
{
    int num1, num2, ans;
    
    ans = max(); // 기본 인수를 적어주었기 때문에
    cout << ans; // 3이 출력됨.
    return 0;
}

int max(int x=1, int y=2){
    if(x > y)
        return x;
    else
        return y;
}

 

함수 오버로드

#include <iostream>
using namespace std;

int max(int x, int y);
double max(double x, double y);
// 함수 이름은 똑같지만, 인수의 타입이 다름.
// 인수의 형과 개수가 다르면 같은 이름을 가진 함수를 여러개 정의할 수 있음.

int main()
{
    int num1, num2, ans1;
    double ans2;
    
    ans1 = max(1,3);
    ans2 = max(1.1, 5.5);
    cout << ans1; // 3이 출력됨.
    cout << ans2; // 5.5가 출력됨.
    return 0;
}

int max(int x, int y){
    if(x > y)
        return x;
    else
        return y;
}

double max(double x, double y)
{
    if(x > y)
        return x;
    else
        return y;
}

 

함수 템플릿

#include <iostream>
using namespace std;

// 함수 템플릿
template <class T>
T maxt(T x, T y)
{
    if(x > y)
        return x;
    else
        return y;
}
// 다루는 형을 제외한 다른 요소가 완전히 동일한 함수를 단 한번만 정의할 수 있음.

int main()
{
    int num1, num2, ans1;
    double dnum1, dnum2, ans2;
    
    ans1 = maxt(1,3);
    ans2 = maxt(1.1, 5.5);
    cout << ans1; // 3이 출력됨.
    cout << ans2; // 5.5가 출력됨.
    return 0;
}





double max(double x, double y)
{
    if(x > y)
        return x;
    else
        return y;
}

 

 

책 내용 정리

그림으로 배우는 C++ Programming Bagic
국내도서
저자 : 타카하시 마나(Takahashi Mana) / 서재원역
출판 : 영진닷컴 2015.07.15
상세보기