#include #include using namespace std; template T manji(T x, T y) { bool b = x < y ? x : y; } char* manji(char *x, char *y) { return strcmp(x, y) < 0 ? x : y; } template class Par { public: Par(T prvi = 0, T drugi = 0) :_prvi(prvi), _drugi(drugi) {} T vratiPrvi() const { return _prvi; } T vratiDrugi() const { return _drugi; } void postaviPrvi(T x) { _prvi = x; } void postaviDrugi(T x) { _drugi = x; } void pisi(ostream &izlaz) const { izlaz << "(" << _prvi << ", " << _drugi << ")"; } private: T _prvi; T _drugi; }; template ostream& operator<<(ostream& izlaz, const Par& p) { p.pisi(izlaz); return izlaz; } int main() { int x = 1, y = 4; cout << "x = " << x << endl; cout << "y = " << y << endl; cout << "manji(x, y) = " << manji(x, y) << endl; double x1 = 1.1, y1 = 4.4; cout << "x1 = " << x1 << endl; cout << "y1 = " << y1 << endl; cout << "manji(x1, y1) = " << manji(x1, y1) << endl; char x2 = 'a', y2 = 'b'; cout << "x2 = " << x2 << endl; cout << "y2 = " << y2 << endl; cout << "manji(x2, y2) = " << manji(x2, y2) << endl; cout << "manji(x, x1) = " << manji(x, x1) << endl; char *s, *t; s = new char[6]; t = new char[7]; strcpy(t, "mirko"); strcpy(s, "spasic"); cout << "manji(s, t) = " << manji(s, t) << endl; delete [] s; delete [] t; Par p(2,3); cout << "p = " << p << endl; Par p1(2.2,3.3); cout << "p1 = " << p1 << endl; Par< Par > p2 (Par(1,2), Par(3,4)); cout << "p2 = " << p2 << endl; return 0; }