티스토리 뷰
함수 오버로딩 (Overload)
C++ 에서는 같은 함수 이름으로 두 가지 이상의 정의를 갖는 것을 용인한다.
(같은 함수 이름으로 두 가지 이상의 함수 정의가 주어지는 거슬 함수 이름 오버로딩이라 부른다)
예제 코드
#include "stdafx.h"
#include "malloc.h"
#include "memory.h"
#include "string.h"
// Pre defined function. (used in main)
double ave(double n1, double n2);
double ave(double n1, double n2, double n3);
int main(int argc, char *argv[], char* envp)
{
printf("%.2f\n", ave(3, 5));
printf("%.2f\n", ave(3, 5, 9));
return 0;
}
double ave(double n1, double n2)
{
return ((n1 + n2)/2.0);
}
double ave(double n1, double n2, double n3)
{
return ((n1 + n2 + n3)/3.0);
}
! 구조체는 "typedef struct NAME" 또는 "struct NAME" 으로 선언할 수 있다.
다만 첫번째 방법으로 선언했을 때는 바로 이름을 변수처럼 이용해 변수를 만들 수 있으나,
두번째 방법으로 선언했을 때는 변수 타입 앞에 struct를 붙여 주어야 한다.
함수 오버라이딩 (Override - C++)
상위 클래스의 메서드를 재정의한다.
메서드의 이름은 물론 파라메터의 갯수나 타입도 동일해야 하며, 주로 상위 클래스의 동작을 상속받은 하위 메소드(함수)의 동작을 재정의하는데 사용한다.
'Programing > C++' 카테고리의 다른 글
C++ 객체지향 프로그래밍(OOP) (0) | 2016.08.03 |
---|---|
C++ Assert를 이용한 프로그램 디버깅 (0) | 2016.08.02 |
C++ 구조체, 구조체 포인터 (0) | 2016.07.31 |
C++ 다중, 더블 포인터 (0) | 2016.07.29 |
C++ 메모리 할당, 포인터 (문자열) (0) | 2016.07.28 |
댓글