본문 바로가기

Programming62

항목 2. #define을 쓰려거든 const, enum, inline을 떠올리자. 이유 1. 컴파일러는 선행 처리자를 밀어버리고 숫자 상수로 바꾸어 버리기 때문이다. #define ASPECT_RATIO 1.653 위와 같이 코드를 썻다고 하면 ASPECT_RATIO 라는이름은 컴파일러가 쓰는 기호 테이블레 들어가지 않는다. 그래서 숫자 상수로 대체된 코드에서 컴파일 에러라도 발생하게 되면 골치가 아플 수 있다. 소스 코드엔 분명히 ASPECT_RATIO가 있었는데 에러 메시지엔 1.653이 있으니 말이다. 해결책 1. 매크로 대신 상수를 사용하자. const double AspectRatio = 1.653; AspectRatio는 언어 차원에서 지원하는 상수 타입의 데이터이기 때문에 당연히 컴파일러의 눈에도 보이며 기호 테이블에도 당연히 들어간다. 게다가 상수가 부동소수점 실수 타입.. 2008. 5. 29.
const 키워드의 의미 const 키워드의 용도는 변수를 상수화 시키기 위해 사용 한다. - const int n = 10; n 은 변수이나 const 키워드를 붙여줌으로 상수화 되었다. 따라서 n에 다른 값을 대입하는 것은 허용되지 않는다. - const int* n; 데이터 상수화. n이라는 포인터가 가르키는 값을 상수화 시킨다. - int* const n; 포인터 상수화. n이 가르키는 포인터를 상수화 시킨다. - const int* const n; 데이터와 포인터 상수화. 2008. 5. 28.
항목 1. C++를 언어들의 연합체로 바라보는 안목은 필수 초창기의 C++는 단순한 C 언어에 객체 지향 기능 몇 가지가 결합된 형태였으나 꾸준한 성장을 거쳐 아이디어, 기능, 프로그래밍 전략들을 취해 자기 것으로 만드는 데 있어 점점 대담하고 과감한 행보를 보였다. 이렇게 발전한 C++는 다중패러다임 프로그래밍 언어라고 불리운다. 절차적 프로그래밍을 기본으로 객체 지향, 함수식, 일반화 프로그래밍을 포함하여 메타프로그래밍 개념까지 지원하고 있다. C++를 적절히 사용하기 위해서 C++를 단일 언어로 바라보는 눈을 넓혀, 상관 관계가 있는 여러 언어들의 연합체로 보자. 이렇게 해 가면 시각이 단순해지고 명확해지며, 기억하기도 편해 진다. C++는 4개의 하위 언어를 제공한다. 제공하는 하위 언어는 다음과 같다. C : C++는 여전히 C를 기본으로 하고 있다. .. 2008. 5. 28.
동적할당을 통한 행열의 곱셈, 역행열, 전치행열 구하기 운화형의 세미나 과제로 동적할당을 통한 행렬의 곱셈, 역행렬, 전치행렬을 구하는 프로그램을 만들어 봤다. 전체적인 프로그램의 흐름은 다음과 같다. CMatrixMgr::ModeSelect 를 통하여 행렬의 곱, 역행렬, 전치행렬 중 어떠한 작업을 할 것인지 입력을 받는다. 그리고 CMatrixMgr::Run을 호출하여 행렬의 크기를 설정하는 CMatrix::SetArray, 행렬의 값을 입력 받는 CMatrix::InputMatrix, 계산을 수행하는 CMatrix::Calculation, 결과를 출력하는 CMatrix::Result 를 차례로 호출한다. CMatrix 클래스는 역행렬 관련 클래스인 CMatrixInverse, 행렬의 곱셈 관련 클래스인 CMatrixMultiply, 전치행렬 관련 클래스.. 2007. 11. 23.
[아키텍트 #2.1] 다양한 개발방법론 모델 [아키텍트 #2.1] 다양한 개발방법론 모델 글쓴이 : 리틀(http://Littlez.net/ & http://nBloger.Net) 퍼 갈때 출처를 꼭 밝히세요! 1. 폭포수 모델 설계에서 구현까지 이전 단계로 돌아가지 않고 개발을 진행해 나가는 것을 기본으로 하는 개발 방법론이다. 2. 프로토타이핑 방법론 사용자에게 시스템의 프로토타입을 제시하면서 개발을 진행하는 방법이다. 3. RAD (Rapid Application Development) 빠른 시일내에 어플리케이션을 개발하는 방법론 전체를 지칭한다. 4. RUP (Rational Unified Process) 미국 IBM의 Rational 부서가 만든 반복형 개발방법론으로, 설계에서 테스트까지 수 회 반복하며 개발을 진행하는 방법론이다. 5. .. 2007. 11. 22.
[아키텍트 #1] 아키텍트란? [아키텍트 #1] 아키텍트란? 글쓴이 : 리틀(http://Littlez.net/ & Http://nBloger.Net) 퍼 갈때 출처를 꼭 밝히세요! 1. 아키텍트 아키텍트는 시스템 개발의 초기 단계에 시스템의 기반이 되는 아키텍처를 설계하는데 이 아키텍쳐가 분석, 설계, 구현 등의 단계에 많은 영향을 미친다. 아키텍트카 하는 일은 결정된 명세를 프로그래밍하는 프로그래머이나 프로젝트의 원활한 진척을 계획하는 PM업무와는 다르다. 기술적 관점에서 시스템 전체를 넓게 바라 볼 수 있는 존재가 바로 아키텍트 이다. 2. 아키텍트의 주요 업무 개발에 쓰일 다양한 템플릿을 만든다. (용어나 개념의 이해는 개인에 따라 다르므로 아키텍트가 템플릿을 정리해 제공한다.) 설계 지침을 제공한다. (개발자마다 판단 기준이.. 2007. 11. 22.