Re[4]: Статические классы
От: macaronian  
Дата: 14.12.15 19:12
Оценка:
Здравствуйте, 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; } — пипец борщ. в топку.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.