본문 바로가기

Software/C/C++

File IO Example Cout object는 다음과 같은 manipulator를 사용할 수 있다. endl : newline 문자를 삽입한 후, 버퍼를 flush한다. ends : null문자를 삽입한다 flush : 출력 버퍼를 flush한다 폭지정 (width) 출력되는 항목에 폭을 지정하기 위해서는 setw 조작자를 더보기
const 상수 사용 다음을 통해 상수의 사용을 정확하게 이해하자. /* //------------------------------------------------------------------------------- case 1: const변수에 초기화 - 멤버 변수를 initializer 를 통해 초기화 해야 한다. */ class AA{ const int conval; .... } AA():conval(2) { ..... } /* //------------------------------------------------------------------------------- case 2: Member함수가 const가 되면, 이 함수를 통해서 멤버 변수의 값이 변경되는 것은 허용되지 않는다.. */ /* //-----.. 더보기
[C++] 객체 포인터와 참조 /// #include using std::endl; using std::cout; class Person { public: void Sleep() { cout 더보기
[C++]Copy Constructor vs = operator 복사 생성자 복사 생성자 호출 조건, there are several condition for call copy constructor 1.pass by value object 2.return by value object 3.initialize by value object 4. 5. if there is a copy constructor and a =operator classA::classA(const classA& aa){.....} classA& calssA::operator=(const classA& aa){....} in source classA aa(1,"KK"); classA ab, bb = aa; //1 ab = aa; //2 in line 1, bb=aa it calls copy constructor n.. 더보기
[C++]Workshop . 1.Design and code three global functions named enter() simplify() display() Your enter() function accepts a fraction from the user. Your simplify() function simplifies a fraction, if possible. Your display() function displays a fraction. Your global functions use a Fraction type. A Fraction type holds the numerator and denominator of a fraction as separate data members. The main program that u.. 더보기
[C++] new 연산자에 의해 전달되는 예외 new 연산자에서 메모리 할당에 실패했을 경우, NULL포인터가 return된다. 이는 C++의 과거 표준이다. 현재 새로운 표준에 대한 정보는 header파일에 bad_alloc예외가 전달된다고 한다. MS VC++ 컴파일러는 MSDN에서 아래와 같이 지원한다고 명시되어 있다. http://msdn2.microsoft.com/ko-kr/library/6512dwes(en-us,VS.80).aspx The class describes an exception thrown to indicate that an allocation request did not succeed. class bad_alloc : public exception { bad_alloc(const char *_Message): excepti.. 더보기
[C++] 함수포인터 function pointer 1절. 함수포인터란 ? C 에서의 함수포인터는 언어와 관련된 문법적인 내용임으로 함수포인터에 대한 설명은 지극히 의례적인 내용이 될수 있겠지만, 꽤 복잡하기도 하고 재미있게 사용할수도 있으므로 굳이 강좌를 만들었다. 함수 포인터는 말그대로 함수의 위치를 가리키는 포인터이다. C 언어의 경우 함수자체를 변수로 만들수는 없다. 대신 함수를 포인트하는 것은 가능한데, 이것을 통해서 함수를 포인터 처럼 사용할수 있으며, 이 포인터가 가르키고 있는 곳의 함수를 실행시킬수도 있다. 1.1절. 선언방법 포인터는 하나의 자료형이므로 포인터가 가르키는 데이타의 타입정보를 이용해서 포인터를 선언해줘야 한다. 물론 함수포인터의 경우 포인터하는 대상이 데이타가 아니고 함수라는 점이 다르긴 하지만.. 말이다. 다음은 함수포인터.. 더보기
[C++.STL] 13장: generic 알고리듬 13.1 개요 13장과 14장에서는 표준 라이브러리가 제공하는 generic 알고리듬에 대해 설명한다. 아래 표는 13장에서 설명할 알고리듬의 이름과 용도를 요약해 놓은 것이며, 알고리듬들을 용도별로 분류하였다. 이름 용도 초기화 알고리듬 - 13.2절 fill 시퀀스를 초기값으로 채우기 fill_n n개의 자리를 초기값으로 채우기 copy 시퀀스를 다른 시퀀스에 복사하기 copy_backward 시퀀스를 다른 시퀀스에 복사하기 generate 생성기(generator)를 사용하여 시퀀스를 초기화하기 generate_n 생성기(generator)를 사용하여 n개의 자리를 초기화하기 swap_ranges 두 병렬 시퀀스의 내용 뒤바꾸기 검색 알고리듬 - 13.3절 find 인자값과 일치하는 원소 찾기 fi.. 더보기
[ C++.STL] 12장: string 12.1 string 추상(abstraction) string은 인덱싱이 가능한 문자들의 시퀀스이다. 비록, string이 vector의 서브클래스는 아니지만, 5장에서 설명한 대부분의 vector 연산들을 string에 적용할 수 있다. 게다가, string은 vector 연산뿐만 아니라 유용하고 강력한 고수준 연산들을 추가로 제공한다. 표준 라이브러리의 string은 실제로는 basic_string 템플릿 클래스이다. 템플릿 인자는 string 컨테이너를 구성하는 문자의 타입을 나타낸다. 이렇게 함으로써, 표준 라이브러리는 일반적으로 많이 쓰이는 8비트 아스키 문자들뿐만 아니라 16비트 광폭 문자(wide character)들과 같은 것들도 다룰 수 있는 기능을 제공한다. string과 wstring.. 더보기
[C++.STL] 11장: priority_queue 11.1 priority_queue 데이터 추상(data abstraction) priority queue는 값들의 콜렉션으로부터 가장 큰 값을 신속하게 찾거나 제거할 필요가 빈번하게 발생하는 상황에서 유용하게 사용할 수 있다. 일상에서 찾아볼 수 있는 priority queue의 예로 아직 처리되지 않은 일들의 목록을 들 수 있다. '책상 정리'와 같은 일들은 그리 긴박한 사항이 아니므로, 임의로 연기할 수 있지만, '월요일까지 보고서 마치기'나 '기념일을 위한 꽃사기'와 같은 작업은 시간이 중요하므로 가장 급히 해결해야할 일들이다. 따라서, 중요도에 따라 수행할 작업들을 정리하고, 가장 급박한 것을 골라 수행한다. A Queue That is Not a Queue 컴퓨터와 관련된 예로는 대기 프로세스.. 더보기