C++
template / 연산자 오버로딩
khkg12
2023. 8. 10. 16:06
템플릿
템플릿은 C++ 프로그래밍 언어의 한 기능으로, 함수와 클래스가 제네릭 형과 동작할 수 있게 도와준다. 함수나 클래스가 개별적으로 다시 작성하지 않고도 각기 다른 수많은 자료형에서 동작할 수 있게 한다.
int Add(int nA, int nB) {
return nA + nB;
}
float Add(float nA, float nB) {
return nA + nB;
}
// Add라고 하는 동일한 기능을 수행하는 함수가
// 쓰고자 하는 데이터 타입의 수만큼 똑같은게 계속 오버로딩을 해야됨
template<typename T>
T Add(T nA, T nB) {
return nA + nB;
}
void main() {
cout << Add(10, 5) << endl;
cout << Add(10.21313f, 0.5f) << endl;
}
구조체끼리의 덧셈
연산자를 오버로딩하여 원하는대로 사용자가 정의할 수 있다.
struct A {
int value;
int Plus(A target) {
return value + target.value;
}
int operator+(A& ref) { // 연산자 오버로딩
return this->value + ref.value;
}
};
void main() {
A aInstance;
aInstance.value = 30;
A aInstance2;
aInstance2.value = 10;
// 구조체끼리 더하려면 연산자 오버로딩
cout << aInstance + aInstance2 << endl;
}