반도체/C++

14. C++과 C언어의 차이 (2)

Clair_de_Lune 2024. 7. 26. 16:39
728x90

1. 함수 오버로딩 (Function Overloading)

  • C 언어: 함수 이름은 고유해야 하며, 동일한 이름의 함수를 여러 개 정의할 수 없습니다.
  • C++: 함수 오버로딩이 지원되어 동일한 이름의 함수를 매개변수의 타입이나 개수에 따라 여러 개 정의할 수 있습니다.

2. 기본 인수 (Default Arguments)

  • C 언어: 기본 인수를 지원하지 않으므로, 모든 인수를 명시적으로 제공해야 합니다.
  • C++: 기본 인수를 정의할 수 있어, 호출 시 일부 인수를 생략할 수 있습니다.

3. 함수 템플릿 (Function Templates)

  • C 언어: 함수 템플릿을 지원하지 않습니다.
  • C++: 템플릿 기능을 통해, 다양한 데이터 타입에 대해 동일한 기능을 제공하는 함수를 정의할 수 있습니다.

4. 네임스페이스 (Namespace)

  • C 언어: 네임스페이스 개념이 없으며, 모든 함수는 전역적으로 선언됩니다.
  • C++: 네임스페이스를 사용하여 함수 이름의 충돌을 방지할 수 있습니다.

5. 멤버 함수 (Member Functions)

  • C 언어: 구조체와 같은 데이터 구조를 사용하여 함수와 데이터를 함께 묶는 기능이 없습니다.
  • C++: 클래스와 객체 지향 프로그래밍을 지원하여, 멤버 함수로서 클래스의 일부로 함수가 정의될 수 있습니다.

6. const 멤버 함수

  • C 언어: 이 개념이 없습니다.
  • C++: const 키워드를 사용하여, 객체의 상태를 변경하지 않는 멤버 함수를 정의할 수 있습니다.
#include <stdio.h>

void printSum(int a, int b) {
    printf("두 수의 합은 %d입니다.\n", a + b);
}

int main() {
    printSum(5, 10);
    return 0;
}

 

C언어

 

 

#include <iostream>
using namespace std;

void printSum(int a, int b) {
    cout << "두 수의 합은 " << a + b << "입니다." << endl;
}

int main() {
    printSum(5, 10);
    return 0;
}

C++

728x90

'반도체 > C++' 카테고리의 다른 글

16. 두 수의 합을 반환하는 함수  (1) 2024.07.26
15.값을 반환하는 함수 VS 값을 반환하지 않는 함수  (1) 2024.07.26
13. C++의 기본인수  (2) 2024.07.26
12. C++과 C언어 차이 예제  (1) 2024.07.26
11. C++ 함수 (2)  (0) 2024.07.25