#include
/*----------------------------------*/
/*template fungsi/prosedur satu tipe*/
template
std::cout << "tulisMasukan dengan masukan : " << n << "\n";
}
/*---------------------------------*/
/*template fungsi/prosedur dua tipe*/
template
A keluaran(A n, B m){
std::cout << "fungsi keluaran dengan nilai n : " << n << "\n";
return n;
}
/*----------------------------------*/
/*overloading template*/
template
T keluaranO(T n){
std::cout << "fungsi keluaranO dengan nilai n : " << n << "\n";
return n;
}
template
T keluaranO(T x, T y){
std::cout << "fungsi keluaranO dengan nilai x * y : " << (x * y) << "\n";
return (x * y);
}
/*----------------------------------*/
/*template untuk kelas*/
template
class Titik{
private:
int x; // koordinat x
int y; // koordinat y
public:
Titik();
Titik(int xp, int yp);
int getX();
void setX(int xp);
int getY();
void setY(int yp);
~Titik();
};
template
Titik
/*konstruktor*/
Titik
Titik
}
template
Titik
/*konstruktor*/
Titik
Titik
}
template
int Titik
/*mengembalikan nilai x*/
return Titik
}
template
void Titik
/*mengeset nilai x*/
Titik
}
template
int Titik
/*mengembalikan nilai y*/
return Titik
}
template
void Titik
/*mengeset nilai y*/
return Titik
}
template
Titik
}
template
class Tulis{
public:
Tulis(T kata){
/*konstruktor*/
std::cout << "isi kata masukan : " << kata << "\n";
}
};
/*--------------------------------*/
int main(){
Titik
char *kata = "bab 21 membahas template";
tulisMasukan(18);
tulisMasukan(28.11);
tulisMasukan("prosedur tulisMasukan dengan masukan string");
keluaran(11, 11.82);
keluaran(9, 'A');
keluaran(9.81, 'A');
keluaranO('A');
keluaranO(81);
keluaranO(82.81);
keluaranO(3, 5);
keluaranO(18.9, 28.11);
std::cout << "t1 : x : " << t1.getX() << " y : " << t1.getY() << "\n";
Tulis
return 0;
}