티스토리 뷰

std::cout << getMax<double>(1, 2) << std::endl;

 

강제로 형변환이 가능

 

 

template<>
void Storage<double>::print()
{
	std::cout << "double type print" << std::endl;
	std::cout << std::scientific << m_value << std::endl;
}

 

클래스 밖에 이런식으로 작성한다면,

 

double type으로 인스턴시네이션이 된 경우 print의 출력을 바꿀수 있음.

 

 

#include<iostream>

using namespace std;

template<typename T>
class A
{
	private:
	T data;
	
	public:
	A(const T &input)
		: data(input)
	{}
	
	void doSomething()
	{
		cout << data << endl;
	}
};

template<>
class A<char>
{
	
	public:
	A()
	{}
	
	void doSomething()
	{
		cout << "hi" << endl;
	}
};

int main()
{
	A<int> a_int(2);
	A<char> a_char;
	a_int.doSomething();
	a_char.doSomething();
}

// 2
// hi
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/01   »
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
글 보관함