본문 바로가기

2009/0226

함수 템플릿!!! 이 책에서는 템플릿을 모형자에 비유하여 설명하을 한다. 모형자는 기능은결정되어 있는 반면에 색은 결정되어 있지 않다는게 특징이다. "기능은 결정되어(정의되어) 있는 반면, 색은 결정되어 (정의되어) 있지 않다." 예를 들어서 원을 그릴 수 있는 모형자가 있다고 가정해 보자. 이 모형자의 기능은. 원을 그리는 것이다. 단! 그려지는 원의 색은 결정되어 있지 않다. 그렇다면 무엇에 의해서 색깔이 결정는가? 그림을 그리는 순간에 사용되는 펜에 의해서 색이 결정된다. -> 예를 들어서 개념을 이해 하자~ ex) int Add(int a, int b) { return a+b; } 위 함수는 두개의 데이터를 더하는 기능을 가지고 있다. 뿐만 아니라, int 형 정수로 덧셈의 대상도 정해져 있다. 즉 대상이 되는 데.. 2009. 2. 17.
임시 객체에 대하여.... 실행 도중에 잠깐만 사용되는 객체, 사용자 모르게 이름도 없이 사용되는 객체, 소스 코드에도 없는 힙 이외의 공간에 생성되는... 이것이 임시 객체이다. 임시 객체는 코드 수행을 위해 컴파일러가 만들어내는 말 그대로 임시 객체이며, 임시 객체가 사용될 때에는 반드시 임시 객체의 생성과 소멸이라는 비용이 뒤따른다. 일반적으로 임시 객체가 생성되는 경우는 다음과 같이 크게 두 가지로 나눌 수 있다. 1. value 또는 const & 형식으로 함수에 전달되는 객체의 타입과 바인딩되어야 하는 (원래 함수 선언에 들어 있는) 매개변수의 타입이 다를 때. 2. 함수의 반환값이 value 일 때. size_t coutCh(const string &str, char ch); // 특정 ch의 개수 반환 함수 char.. 2009. 2. 16.
연산자 우선순위 우선 순위 연산자 결합 순서 유형 1 () , [] , -> ==> 괄호 와 구분자 구조체 맴버 지정자 2 ! ~ ++ -- + - * & (type)sizeof 이항 연산자 4 + - ==> 이항 연산자 5 ==> 쉬프트 연산자 6 = ==> 비교 연산자 7 == != ==> 비교 연산자 8 & ==> 비트 연산자 9 ^ ==> 비트 연산자 10 | ==> 비트 연산자 11 && ==> 논리 연산자 12 || ==> 논리 연산자 13 ?: 2009. 2. 16.
string 클래스 디자인 표준 string 클래스 C++ 표준 라이브러리에는 string이라는 이름의 클래스가 정의되어 있다. 클래스의 이름이 의미하는것처럼 문자열 처리를 쉽게 할 수 있도록 도움을 주기 위해 정의된 클래스이다. 이 클래스를 사용하기 위해서는 헤더파일 string을 포함해야 한다. #include string 클래스 역시 이름공간 std내에 선언되어 있다. 따라서 이름공간에 대한 언을 미리 해야한다. using std::string; string 클래스의 특징; 1. 생성자, 소멸자, 복사 생성자 그리고 대입 연산자를 정의해야 한다. - string 클래스는 문자열을 저장하기 위한 용도의 클래스이다. 그런대 저장하고자 하는 문자열의 길이가 일정치 않다. 따라서 우리는 문자열을 저장할 배열을 생성자 내에서 동적 할.. 2009. 2. 16.