본문 바로가기

전체 글62

형변환 우리가 일반적으로 흔히 사용하는 (int)a 와 같은 형 변환은 C style이다. C++에도 c++만의 형 변환이 있다. 왜 두가지의 형변환이 필요하지? 라고 궁금할 수도 있는데. c스타일의 형변환은 읽기가 어려울 수 도 있다. ( ) 는 함수에서도 쓰이고, 아주 많은 곳에서 쓰이는 것이기 때문에 자칫하면 놓칠수도 있다. 그래서 C++ 스타일의 형변환은 읽기에도 편하고, 어떤 용도로 사용 했는지도 알기 쉽다. C++ 에는 총 4가지의 형변환이 있다. 차근차근 알아보자. 1. 일반적인 형변환. 일반적으로 많이 쓰는 int - > float 와 같은 형변환이다. static_cast(대상) 으로 사용한다. 예를 보자. float a = 10.2; int b = static_cast(a); 와 같이 사용한다.. 2012. 10. 12.
연산자 오버로딩 연산자 오버로딩은 아주 많이 쓰이는 기능들 중에 하나다. 연산자 오버로딩으로 클래스+클래스 와 같은 일반적으로 불가능한 연산도 가능하게 만들수 있어서, 클래스 사용에 많은 도움이 된다. 허나 너무 많은 연산자 오버로딩은 오히려 독이 될 수 도 있으니 항상 주의 해야한다. 우선 어떻게 사용하는지를 살펴보자. 사용법은 간단하다. ReturnType operator"?"(left, right) { return ReturnType형; } 과 같이 사용하면 된다. 다소 어려워 보일 수 도 있는데 예를 보자. Complex 라는 class가 있다고 가정하자. Complex operator+ ( Complex A , ComplexB) { A.실수 = A.실수 + B.실수; A.허수 = A.허수 + B.허수; retu.. 2012. 10. 12.
Calling 날짜마다, 몇분 통화했는지, 몇번 통화했는지 하는 자료가 있다. 그 자료를 토대로, 날짜 구간을 주면 통화량, 통화횟수를 출력하는 프로그램이다. 입력 받는 파일은 2가지로, 하나(phone.inp)는 날짜에따른 정보들이 들어있고, 하나의 파일(calling.inp)에는 날짜 구간이 들어있다. 출력 파일(calling.out)은 하나다. 전체적인 구조는 Call Class 를 만들어 사용했다. 개념은 단순하기 때문에 여기서 더 설명할 건 없을 것 같다. main()함수의 안에는 최대한 간결하게 했다. 간결하다. 객체 선언후 파일을 읽고 프린트를 해준다. 함수의 이름과 기능이 다소 맞지 않은 것 같은데 이점은 좀더 보완 해야 할 것 같다. 다음은 클래스 멤버함수들이다. 더욱 간결하게 짤려고 했는데 더 복잡해.. 2012. 10. 1.
접근 범위, 존속 기간 접근범위와 존속기간이 있다. 대부분은 이 부분을 안배웠더라도, 이해하고 사용하고 있을 것이다. 접근범위란, 말그래도 접근 할 수 있는 범위를 말한다. 접근 범위를 말하기에 앞서, 전역,지역 변수에 대해 먼저 말하겠다. 전역변수는 함수밖에 선언된 변수다. 사용법은 다음과 같다. int a = 1; int main() { ~~내용생략 } 위와 같은 경우 a 는 전역 변수이다. 전역 변수는 모든 곳에서 접근 가능하고 다른 파일에서도 접근 가능하다. 다른 파일 에서 전역 변수에 접근 하기 위해서는 파일에 extern int a; 와 같이 선언 해주면 컴파일러가 전역변수로 인지한다. 지역변수는 함수안이나, 중괄호안에 선언된 변수들을 말한다. 이 변수는 같은 영역에서만 접근 가능하다. 쉽게 이해하자면 일반 적으로 .. 2012. 9. 14.