template: type의 종류에 관계없이 사용 가능한 data structure 또는 function
stl(standard template library)
stack <int> s1;
stack <double> s2;
stack <s_record> s3;
vector <int> a(5); // 원소 5개 갖는 vector
vector <int> a(10);
vector <int>:: iterator p;
연산 기호를 user defined class object에서 사용 가능하도록 하기 위함
class weight
{
public:
int kg;
int gram;
weight operator+(const weight & t);
};
weight weight::operator+(const weight & t)
{
weight tmp;
tmp.kg = kg + t.kg; tmp.gram = gram + t.gram;
if (tmp.gram >= 1000) {
tmp.kg += tmp.gram / 1000;
tmp.gram = tmp.gram % 1000;
}
return tmp;
}
레퍼런스(&)
int main() {
int a = 3;
int& another_a = a;
another_a = 5;
std::cout << "a : " << a << std::endl;
std::cout << "another_a : " << another_a << std::endl;
return 0;
}