Nami 의 공부방 139

템플릿의 구체화 및 특수화

템플릿 구체화 및 특수화 구체화란 -> 템플릿은 "함수를 어떻게 만들지 정의" 해놓은 것일뿐이고 실제로는 컴파일러가 호출을 위해서 사용된 변수의 타입을 보고 "함수를 만들어 내는 " 과정을 구체화 라고 한다.!! 특수화란? -> 임시적 구체화 , 명시적 특수화 , 명시적 구체화 모두를 한데 묶어서 특수화 라고한다.!! 임시적 구체화란 ex) template void Swap(Any &a,Any &b); 이경우 메인 함수에서 swap을 호출시에 인자값에 형태에 맞춰서 자동으로 함수를 생성하고 실행된다 명시적 구체화란 ex) template void Swap(int &a, int &b) 이경우 int 형에 맞춰서 함수를 생성하라고 뜻이다. 이를 명시적 구체화라고 한다. 명시적 특수화란 앞에 구도체 특정 멤버..

확률 계산 시 부동소수점 오버플로

확률 계산시 소수를 이용했을시 (10*9) / (2*1) - ① (10/2) * (9/1) - ② 위의 경우가 있을시 둘다 계산 식은 같다 . 그러나 부동 소수점 오버플로 방지가 되는것은 ② 번이다. 그럼 이를 이용한 한 예를 보겠다. #include using namespace std; long double probability(unsigned numbers, unsigned picks); int main() { double total,choices; couttotal>>choices)&& choices

cin 에 대해서 !!!

int n=0; cin>>n 일때 입력 큐에 정수가 아닌 문자가 입력될때 1. n의 값은 변하지 않는다. 2. 입력 큐에 잘못된 입력이 그대로 유지 된다. 3. cin 객체의 에러 플래그가 설정된다. 4. cin 메서드 호출이 false 를 리턴한다. cin은 문자열을 입력받을때 빈공간을 생략하고 입력받는다 즉 song eun nam 이런 문자열을 입력시 songeunnam 으로 배열 및 string에 입력된다 . 그럼 빈공백까지 입력 시킬려면 어떻게 처리 해야 될까요? cin.get()이라는 cin의 메서드 함수를 사용하면 된다,

MFC 에서의 __T(x) 의 의미

만일 tchar.h전에 _UNICODE 가 define 되면 다음과 같이 정의됩니다. #define __T(x) L##x 즉 __T("Melong") 은 L"Melong" 으로 치환되게 됩니다. 정의되어 있지 않으면 다음과 같이~ #define __T(x) x 네, __T("x") 는 그냥 "x" 입니다. 그리고 다음과 같이 또 define 되어 있죠 #define _T(x) __T(x) #define _TEXT(x) __T(x) _T 대신 _TEXT라고 써도 됩니다. L"Melong"이 황당하시죠? 이것은 C++문법으로 확장문자열을 뜻합니다. 다음과 같이 확장문자열 포인터를 지정할 수 있죠 wchar_t *p = L"Melong!"; 쉽게 여러 언어를 지원하는 프로그램을 만들기 위해 쓰는 것이다라고 생..

Soft Ware/MFC !! 2011.10.12