'C++'에 해당되는 글 4건

  1. 2008.05.13 [C++] Error LNK 2001 :: unresolved external symbol ~
  2. 2007.11.15 OOP의 시대적 의미 또는 필요성
  3. 2007.11.07 C++ template 함수의 정의
  4. 2007.10.31 C++ dynamic_cast 사용 시 polymorphic type 관련 warning

[C++] Error LNK 2001 :: unresolved external symbol ~

Error LNK 2001 :: unresolved external symbol ~


여러 원인이 있을 수 있지만 가상 함수(Virtual Function)의 잘 못 된 선언도 그 중 하나이다.

가상 함수를 선언한 후 정의하지 않은 경우인데,

1) Base 클래스에 정의 부분을 넣어 주거나

2) 정의를 하지 않아도 좋다는 의미의 순수 가상 함수(Pure Virtual Function) 형태로 선언부를 변경해주면 된다.

OOP의 시대적 의미 또는 필요성

객체 지향 방식은 조립식이기 때문에 결과물의 성능(속도와 크기)이 맞춤형의 절차식에 비해 조금 떨어지는 단점이 있다. 그러나 하드웨어의 발전에 힘입어 그 정도의 차이는 큰 문제가 되지 않아 무시할만하다.

현대의 개발 관건은 프로그램의 성능보다 오히려 개발 용이성과 유지, 보수 편의성, 신뢰성이다. 인건비가 하드웨어보다 훨씬 더 비싸고 개발 기간이 곧 비용과 직결되기 때문에 얼마나 빨리 정확한 소프트웨어를 생산하는가가 관건이며 그 해답이 바로 객체 지향 프로그래밍이다.

C++ template 함수의 정의


" 템플릿 함수의 경우는 그 특성상 헤더에 정의를 해야합니다.
관례적으로 템플릿함수가 정의된 헤더는 .hpp 를 사용합니다.

저의 경우 헤더에 정의코드가 들어가면 헤더파일의 가독성이 떨어지는 것을 막기 위해 .hpp 와 .h 둘다 만들고 .h 에서 .hpp 를 include 하게 하고 템플릿 함수의 정의를 .hpp 에 넣는 방식을 사용합니다.
이렇게 하면 함수나 클래스의 사용자는 .h 만 include 하면 되기때문에 .hpp 도 같이 해야할지 말아야할지 여부를 고민하지 않아도 되고, .hpp 의 존재 여부도 알 필요가 없지요. "

C++ dynamic_cast 사용 시 polymorphic type 관련 warning

프로젝트 - 속성 - C/C++ - 언어 - 런타임 형식 정보 사용 - 예(/GR) 설정

* /GR : Runtime-Type Info 를 활성화 시키는 스위치.
* MSDN에는 "예"가 기본 옵션이라는데 MS Visual Studio .Net 2003 에선 "아니오"가 기본인 것 같다.

prev 1 next