De manière générale les opérateurs binaires se mettent en fonction externe, les opérateurs unaires et les affectations en fonctions membres.
Cela dit c'est pas une obligation stricte mais juste une convention. Le problème de ton code au post
./1 c'est qu'il définissait l'opérateur * qui prenait un CVector à gauche et un float à droite, alors que tu lui passais le contraire (une des raisons pour laquelle on utilise la convention que j'ai décrite juste au dessus est d'éviter ce type de problème).
Si tu définis l'opération multiplication float par vecteur, tu devrais définir au moins les opérateurs suivants (question de propreté du code) :
CVector operator*(const float _Nbr,const CVector &_Vector);
CVector operator*(const CVector &_Vector, const float _Nbr);
CVector & operator*=(const float _Nbr);