Soft Ware/C++ 언어!! 25

템플릿의 구체화 및 특수화

템플릿 구체화 및 특수화 구체화란 -> 템플릿은 "함수를 어떻게 만들지 정의" 해놓은 것일뿐이고 실제로는 컴파일러가 호출을 위해서 사용된 변수의 타입을 보고 "함수를 만들어 내는 " 과정을 구체화 라고 한다.!! 특수화란? -> 임시적 구체화 , 명시적 특수화 , 명시적 구체화 모두를 한데 묶어서 특수화 라고한다.!! 임시적 구체화란 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의 메서드 함수를 사용하면 된다,

소멸자!!

생성자 가 있으면 당연히 소멸시키는 소멸자가 있기 마련이다 !!! 소멸자란 .... 소멸자는 객체가 블럭통영범위가 끝났을때 즉 스코프 가 끝났을때 객체 이름이 사라지기 전에 소멸자를 호출한다. 소멸자는 무엇을 할때 편할까?? 클래스를 동적 할당을 했다고 과정해보자 그럼 우리는 프로그램이 끝나기전에 할당한 클래스를 하나하나씩 소멸해야할것이다 그럼 가독성이 떨어진다. 이를 위해 소멸자를 이용하여 동적 할당된 객체들을 스스로 해체할수 있다. ex> #include class Book { int *Data; public: Book(int _data) { Data = new _data; } ~Book() { delete Data; } }; 이처럼 소멸자를 정의하여 쉽고 빠르게 프로그램이 끝났을때 소멸자를 호출하여..