티스토리 뷰

함수 오버로딩 (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++)
상위 클래스의 메서드를 재정의한다.
메서드의 이름은 물론 파라메터의 갯수나 타입도 동일해야 하며, 주로 상위 클래스의 동작을 상속받은 하위 메소드(함수)의 동작을 재정의하는데 사용한다.


댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG
more
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함