C++ 16

[요약] Effective C++ 3장 (항목13~17)

[요약] Effective C++ 3장 (항목13~17) 3장 자원 관리 항목 13: 자원 관리에는 객체가 그만! 투자에 대한 최상위 클래스 라이브러리가 있다고 가정하자. 1: class Investment { ... }; // 여러 형태의 투자를 모델링한 2: // 클래스 계통의 최상위 클래스 이 라이브러리에 Investment에서 파생된 클래스의 객체를 사용자가 얻어내는 용도로 팩토리 함수(항목 7참조)만을 쓰도록 만들어져 있다고 하자. 1: Investment* createInvestment(); // Investment 클래스 계통에 속한 클래스의 객체를 2: // 동적할당하고 그 포인터를 반환한다. 3: // 이 객체의 해제는 호출자 쪽에서 직접 해야한다. createInvestment 함수를 ..

[요약] Effective C++ 2장-2 (항목09~12)

[요약] Effective C++ 2장-2 (항목09~12) 2장 생성자, 소멸자 및 대입 연산자 - 2 항목 09: 객체 생성 및 소멸 과정 중에는 절대로 가상 함수를 호출하지 말자 객체 생성 및 소멸 과정 중에는 절대로 가상 함수를 호출하지 말아야 하는- * 두. 가. 지. 이. 유. !!! 1) 우선 호출 결과가 여러분이 원하는 대로 돌아가지 않을 것이고, 2) 원하는 대로 돌아간다고 해도 여러분은 여전히 방귀를 세 시간은 참은 것 같은 얼굴을 하고 있을 것이기 분명하기 때문이다. 주식 거래를 본뜬 클래스 계통 구조가 있다고 가정하자. 여기엔 매도주문, 매수주문 등등이 있다. 주식거래 모델링에서 가장 중요한 포인트라면 감사(audit) 기능이 있어야 한다는 것이다. 그렇기 때문에 감사로그(audit..

[요약] Effective C++ 2장-1 (항목05~08)

[요약] Effective C++ 2장-1 (항목05~08) 2장 생성자, 소멸자 및 대입 연산자 - 1 항목 05: C++이 은근슬쩍 만들어 호출해 버리는 함수들에 촉각을 세우자 빈 클래스(empty class)를 프로그래머가 선언할때에 자동적으로 컴파일러는 기본생성자(default constructor), 복사생성자(copy constructor), 복사대입연산자(copy assignment operator), 그리고 소멸자(destructor)를 선언한다. 1: class Empty{}; 만약 여러분이 위와 같이 썼다면, 1: class Empty{ 2: public: 3: Empty() { ... } // 기본 생성자 4: Empty(const Empty &rhs) { ... } // 복사 생성자..

Thread in C++> example code. - Thread05

Thread in C++> example code. - Thread05 //------------------------------------------------------------------------------ // C++의 Class를 이용한 스레드 예제 - 시작 //------------------------------------------------------------------------------ #include #include #include #include #include #define ONEK 1024 typedef struct _SumInfo { int a, b, s; }SUMINFO, *PSUMINFO; void WriteString(const char* lpszFormat, ...

[C/C++] cctype 문자 함수

[C/C++] cctype 문자 함수 isalnum() : 전달인자가 영숫자, 즉 알파벳 문자이거나 숫자이면 true isalpha() : 전달인자가 알파벳 문자이면 true isblank() : 전달인자가 빈칸 문자 또는 수평 탭 문자이면 true iscntrl() : 전달인자가 제어 문자이면 true isdigit() : 전달인자가 십진 숫자(0~9)이면 true isgraph() : 전달인자가 빈칸이 아닌 인쇄할 수 있는 문자이면 true islower() : 전달인자가 소문자이면 true isprint() : 전달인자가 빈칸을 포함하여 인쇄할 수 있는 문자자이면 true

[C/C++] 입력방법 cin>>ch; cin.get(ch);

[C/C++] 입력방법 cin>>ch; cin.get(ch); cin>>ch; : txt를 입력받는다. 그러나 빈칸, 탭, 개행문자는 무시하고 건너 뛴다. cin.get(ch); : 입력받은 txt가 뭐든지간에 ch저장하고 리턴한다. 많은 프로그램들이 텍스트 입력이나 텍스트 파일로부터 문자 단위로 입력을 읽어들인다. istream 클래스는 이 작업을 할 수 있는 몇 가지 방법을 제공한다. ch가 char 형 변수일 때, 다음과 같은 명령문은 cin >> ch; 입력 문자를 ch에 저장한다. 그러나 이 명령문은 빈칸 문자나 탭 문자, 개행 문자 등은 무시하고 건너뛴다. 다음과 같은 멤버 함수의 호출은 cin.get(ch); 입력 문자를 읽어들여 그 값이 무엇이든 간에 ch에 저장한다. cin.get() 멤..