본문 바로가기

Programming/Tips(C++,C#)143

Chapter 2. COM개요 *이 포스팅은 개인 학습을 위해 내용을 정리한 것이 목적입니다. 1. COM의 개요 과거 소프트웨어 개발의 문제점 중 하나가 유지보수. 이를 해결하기 위해 프로그램의 모듈화가 대두됨. 유지보수 문제 외에도 다음과 같은 문제가 있음. i) 단일 소프트웨어에서의 크기 증가시, 개발/유지/보수가 어렵다는 문제가 있음. 그에 따라 DLL이 사용되었다. 그러나 DLL을 공유하는 소프트웨어의 경우 DLL버전이 다를 경우 프로그램 수행에 치명적인 문제가 발생한다. ii) 같은 C++로 구현하여도 다른 회사의 컴파일러에서는 호환되지 않음. (이진 표준의 부재) iii) 소프트웨어의 경우 하드웨어처럼 유연성을 가지고 있지 못함 iv) 윈도우용 소프트웨어는 윈도우에서만 사용가능. 그러나 사용자는 모든 플랫폼에서 실행되는 .. 2014. 10. 27.
chapter 1. COM을 위한 기초클래스 *이 포스팅은 개인 학습을 위해 내용을 정리한 것이 목적입니다. 1. 구조체와 클래스 *인터페이스 : 서로 다른 객체를 연결하는 연결고리 -인터페이스 키워드 #define interface struct * COM규약에서 정한 하나의 규정 이진 표준을 따라야 함 -> 이진표준을 따르기 위해서는 메모리 맵에서의 데이터 정렬이 중요함. 1) C에서의 구조체 선언 다음과 같은 구조체가 있다고 가정해보자. struct xy { char c; int x; int y; } 위 내용은 간단히 표현하면, 메모리에 다음과 같이 적재될 수 있다. 1byte 2byte 3byte 4byte xy::c xy::x xy::y xy::c의 주소를 알 수 있다면, xy::x, xy::y의 주소는 도출 가능하다. (VC++기준). 그.. 2014. 10. 24.
Chapter 9. 알고리즘 *이 포스팅은 개인 학습을 위해 내용을 정리한 것이 목적입니다. 9.1 알고리즘 사용시 필요한 헤더 파일 - : min(), max(), swap(), iter_swap() - : 수치처리 - : 함수객체나 함수어댑터 9.2 알고리즘에 대한 전반적인 소개 9.2.1 알고리즘에 대한 간단한 소개. -모든 알고리즘은 하나 이상의 범위에 대해서 원소를 처리한다. 범위에 대해 유효함을 보장하여 야 한다. -알고리즘을 보다 강력하고 유연한 사용을 위해 사용자 정의 조건자를 허락한다. 1)사용자는 함수나 함수객체를 단항조건자의 형태로 검색 알고리즘의 기준으로 사용가능 2)사용자는 함수나 함수객체를 이항조건자의 형태로 정렬 알고리즘의 기준으로 사용가능 3)사용자는 함수나 함수객체를 단항조건자의 형태로 특정원소에 대해.. 2014. 10. 24.
Chapter 8. STL함수-객체 *이 포스팅은 개인 학습을 위해 내용을 정리한 것이 목적입니다. 8.1 함수-객체의 개념. -함수 객체는 ()연산자를 정의한 객체임. -함수객체의 3가지 장점 1) 함수객체는 상태를 가질 수 있다. 같은 함수 객체에 대해 동시에 다른 상태를 가질 수 있음 2) 각각의 함수 객체는 자신만의 타입을 가지므로, 함수 객체의 타입을 템플릿의 인자로 제공가능함. 3) 함수객체는 함수포인터보다 빠르다. 8.1.1 정렬 기준으로서의 함수객체 특정 클래스에 대해 정렬하여 가지고 있는 컨테이너가 필요할 수 있다. 이 경우 특정 클래스에 특정한 정 렬 기준을 적용하여 가지고 있으려면 함수 객체를 사용하면 된다. 예제) class Person{ private: string fn; string ln; public: expli.. 2014. 10. 24.
Chapter 7. STL반복자 *이 포스팅은 개인 학습을 위해 내용을 정리한 것이 목적입니다. 7.1 반복자의 헤더파일 역방향 반복자 같은 특별한 반복자는 안에 있음. 그 외에는 컨테이너에 포함 7.2 반복자 카테고리 *반복자 카테고리의 기능 카테고리 기능 제공자 입력반복자 전방향 읽기 istream 출력반복자 전방향 쓰기 ostream, inserter 전방향반복자 전방향 읽기/쓰기 양방향반복자 전/역방향 읽기/쓰기 list, set, multiset, map, multimap 랜덤액세스반복자 랜덤액세스 deque, vector, string, array 7.2.1 입력 반복자 전진방향으로 읽기 엑세스만 가능한 반복자. * 동작 1) *iter : 원소의 읽기 엑세스를 제공 2) iter->member : 원소 멤버의 읽기 엑세스를.. 2014. 10. 24.
Chapter 6. STL컨테이너 *이 포스팅은 개인 학습을 위해 내용을 정리한 것이 목적입니다. 6.1 컨테이너의 공통적인 특징 및 동작 6.1.1 컨테이너의 공통적인 특징 - STL컨테이너의 공통적인 특징 1) 모든 컨테이너는 ‘값 의미론’을 제공한다. - 컨테이너 삽입시 내부적으로 복사본을 생성. 모든 원소는 복사가능해야함. 복사시간이 오래걸릴 경우 객체의 포인터를 가져야 함 2) 일반적으로 모든 원소들은 순서를 가지고 있음. - 각각의 컨테이너는 자신의 원소를 순회할 수 있도록 반복자를 제공한다. 3) 대부분 STL자체는 예외를 발생하지 않는다. - 따라서 호출자는 동작에 대한 정확한 인자를 제공하는 것을 보장해 주어야 한다. 6.1.2 컨테이너의 공통적인 동작 1)초기화 관련 - 모든 컨테이너 클래스는 디폴트생성자, 소멸자, 복.. 2014. 10. 24.
728x90