[c++]sscanf 함수를 새로 구현하려는데 이상하네요

lh8557의 이미지

분명 헤드파일 선언 않하고 함수호출이름도 바껏는데
컴파일에서 인식하는건 왜그럴까요??

#include <iostream.h>
#include <string.h>

class date {
	int day, month, year;
public:
	date(char *d);
	date(int m, int d, int y);
	void show_date();
};
void sscanf(char *, char *, ...);// 여기부분
date::date(char *d) // 여기부분하고
{
	sscanf(d, "%d%*c%d%*c%d", &month, &day, &year);
}

date::date(int m, int d, int y)
{
	day = d;
	month = m;
	year = y;
}

void date::show_date()
{
	cout << month << "/" << day;
	cout << "/" << year<< "\n";
}

main()
{
	date ob1(12, 4, 96), ob2("10/22/97");

	ob1.show_date();
	ob2.show_date();

	return 0;
}

void sscanf(char *, char *, ...)   //  이부분하고
{

}

결과값은 ob1은 제대로 나오고 ob2는 값이 이상하게나오네요
이해를 못하겠어요 어떻게 값이 나오는건지..

exsider의 이미지

date::date(char *d) // 여기부분하고
{
   sscanf(d, "%d%*c%d%*c%d", &month, &day, &year);
} 

void sscanf(char *, char *, ...)   //  이부분하고
{

}

sscanf 함수에서 아무것도 하지 않으니 month 와 day, year에는 쓰레기 값이
들어있는 것이 당연하구요,

date::date(int m, int d, int y)
{
   day = d;
   month = m;
   year = y;
} 

ob1은 sscanf 를 쓰지 않고 초기화했으므로 매개변수로 넘긴 값이 잘~~~ 할당되어있습니다.