C++ 템플릿 - 헤더파일에서 구현하자
·
C++
과제를 하던 도중, 템플릿을 사용하여 vector 클래스를 만들고 있는데 .h 파일에서 정의를 하고 .cpp에서 구현을 하였더니 컴파일러가 링크 에러를 띄워주었다. (LNK1120)이 문제점을 분석하고, 찾은 해결책을 정리해 보도록 할 것이다. 1. 템플릿 프로그래밍템플릿은 코드의 재사용성을 높이기 위한 도구이다. 특히 STL에서 큰 힘을 발휘한다.템플릿 프로그래밍의 동작 방식은 컴파일러가 컴파일 시에 알아서 만들어주는 기능이다.즉 컴파일 도중에 템플릿 인스턴스에 대한 코드를 만들어 주게 된다.예를 들어, 우리가 int res = Add(3, 10); 할 때 컴파일러가 코드를 생성함그래서 템플릿에 넣는 자료형의 가짓수에 비례하여, exe 파일도 증가하게 된다.그 결과, 컴파일 타임은 느리지만 런타임 속도..
C++ TIL day 7
·
C++
1. 자원 관리하기1. 스택 메모리메모리 영역이 크지는 않지만, 생존 영역을 벗어나면 자동으로 해제시켜준다.스택 메모리의 생존 주기는 { } 안이다. 밖으로 나가면 해제된다.static 키워드한번 선언되면, 프로그램 종료될 때 소멸된다.함수 안에서 선언한 후 함수가 끝나더라도, 값이 사라지지 않는다.아래 예시의 경우 11, 12, 13, ... , 20 까지 출력된다.#include using namespace std;void func(){ static int a = 10; a++; cout 2. 힙 메모리프로그램 실행 시 동적으로 할당하는 공간은 힙 메모리를 활용하게 된다.new와 delete 연산자를 이용스택 메모리 영역처럼 자동으로 해제되지 않기 때문에, 코드를 짤 때 조심해야 한다.변수 하나의 동..