Здравствуйте, night beast, Вы писали:
NB>Здравствуйте, Khimik, Вы писали:
K>>Может быть я вас не понял, но по-моему не оно.
K>>Фунцию vector(vect:tvector) написать можно, но удобнее было бы вызывать её через точку (d:=v.length), иначе можно запутаться если этих функций много.
NB>добавить в уже существующий класс новый метод?
NB>не, такого в плюсах нет.
NB>только через обертку или наследника:
NB>NB>struct vector {
NB> float x,y,z;
NB>};
NB>struct vector_view {
NB> vector const & m_ref;
NB> vector_view ( vector const & src ) : m_ref( src ) { }
NB> operator vector const & ( ) const { return m_ref; }
NB> float length ( ) const;
NB>};
NB>void test ( vector const & );
NB>int main () {
NB> vector v;
NB> vector_view vv( vv );
NB> test( vv );
NB>}
NB>
>>>operator vector const & ( ) const { return m_ref; } — пипец борщ. в топку.