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