(C++ : Template) class에 template 쓰기

Posted by : at

Category : Cpp


template<typename T> class Complex
{
  T re, im;
public:
};

int main()
{
  Complex c1;     // T를 알수 없기에 error
  Complex<int> c2;// okay
}

void foo(Complex c);   // 이런 선언도 불가능하다
template<typename T> class Complex
{
  T re, im;
public:
  void foo(Complex c);    // 요거는 가능하다
};
template<typename T> class Complex
{
  T re, im;
public:
  // Complex(T a = 0, T b = 0) : re(a), im(b) {}
  // 0으로 초기화 될 수 없는 타입일 수 있기에 아래와 같은 코드가 더 좋은 코드라 할 수 있음
  Complex(T a = {}, T b = {}) : re(a), im(b) {}
  
  T getReal() const;
  // 외부에 함수를 구현
  
  static int cnt;
  // static 쓰기
  
  template<typename U> T func(const U& c);
  // 클래스 템플릿의 멤버함수 템플릿
};

// T Complex::getReal() const
// T가 뭐라고 알려줘야함
template<typename T> 
T Complex<T>::getReal() const
{
  return re;
}

template<typename T> 
int Complex<T>::cnt = 0;

template<typename T> template<typename U>
T Complex<T>::func(const U& c);

int main()
{
  
}

About Taehyung Kim

안녕하세요? 8년차 현업 C++ 개발자 김태형이라고 합니다. 😁 C/C++을 사랑하며 다양한 사람과의 협업을 즐깁니다. ☕ 꾸준한 자기개발을 미덕이라 생각하며 노력중이며, 제가 얻은 지식을 홈페이지에 정리 중입니다. 좀 더 상세한 제 이력서 혹은 Private 프로젝트 접근 권한을 원하신다면 메일주세요. 😎

Star
Useful Links