Notice
Recent Posts
Recent Comments
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
31 |
Tags
- virtual function
- member function
- 맵리듀스
- Linear Regression
- least square
- struct
- 지도학습
- 머신러닝
- inheritance
- 비선형모델
- overriding
- call by value
- kubernetes
- 선형모델
- MapReduce
- c++
- Overloading
- 최소제곱법
- 회귀
- Nonlinear Function
- Nonlinear Model
- 비선형 함수
- 회귀학습
- regression
- call by reference
- local minimum
- Machine learning
- Effective C++
- Class
- 딥러닝
Archives
- Today
- Total
J's Study log
[C++] Class Template & Template Specialization 본문
Class Template
-
Class template is for type of members in class.
- Class template sets the type while constructing.
//member function defined inside the class #include <iostream> using namespace std; template <class T> class Simple{ private: T sign; int num; public: Simple(T _sign, int _num):sign(_sign), num(_num) {} void Print(){ cout<<"sign : "<<sign<<endl; cout<<"num : "<<num<<endl; } void setSign(T sign){ this->sign = sign; } void setNum(int num){ this->num = num; } };
//member function defined outside the class #include <iostream> using namespace std; template <class T> class Simple{ private: T sign; int num; public: Simple(T _sign, int _num) void Print() void setSign(T sign) void setNum(int num) }; template <class T> Simple<T>::Simple(T _sign, int _num):sign(_sign), num(_num) {} template <class T> void Simple<T>::Print(){ cout<<"sign : "<<sign<<endl; cout<<"num : "<<num<<endl; } template <class T> void Simple<T>::setSign(T sign){ this->sign = sign; } template <class T> void Simple<T>::setNum(int num){ this->num = num; }
※ Warnings
- When member function is declared outside of the class, you must declare template again. (it's kind of function template)
- When splitting the file 'Template Class's declaration & implementing' have to be in a same file.
Template Specialization
- Template specialization is for making another template function for a specific type.
template <class T> T sum(T a, T b){ return a + b; } template<> char* sum<char*>(char* a, char* b){ char* re = "error" cout<<"a :"<<a<<endl; cout<<"b :"<<b<<endl; return re; }
[참고자료]
- 윤성우의 열혈 C++ 프로그래밍
'Computer Language > C++' 카테고리의 다른 글
[C++] Factor of Template (0) | 2020.07.12 |
---|---|
[C++] idea of Template & Function Template (2) | 2020.06.27 |
[C++] new & delete Operator Overloading (5) | 2020.06.27 |
[C++] Operator Overloading - const/Index Operator of Array (2) | 2020.06.20 |
[C++] Shallow Copy & Deep Copy (0) | 2020.06.02 |