C++ (Qt)template < typename _Type, int _D >class Point{ _Type m_values[_D];}template < typename _Type, int _D >class Vector{ _Type m_values[_D];}
C++ (Qt)template < typename _Type, int _D >class Base{ _Type m_values[_D+1];}template < typename _Type, int _D >class Vector : public Base< _Type, _D >{public: Vector() {m_values[_D] = Type(); }}; template < typename _Type, int _D >class Point : public Base< _Type, _D >{public: Point() {m_values[_D] = Type(1); }};
C++ (Qt)vec.x = vec.x * some_constant / vec.z;vec.y = vec.y * some_constant / vec.z;
void QPainter::drawLine(const QPoint & p1, const QPoint & p2);void QPainter::drawLine(const QPointF & p1, const QPointF & p2);[/quote]
template <class Point>void QPainter::drawLine(const Point & p1, const Point & p2);