Code:
class A {
[variables, methods' prototypes that create vectors which their memory can change dinamically when it is convenient]
};
[Definition of the constructor]
[Definition of those methods]
class B{
public:
A s(A&);
void f( long in);
void g (A&, const string&);
void h(A&, long int);
void i(A&,long int);
};
Class B has the responsability to, given two vectors, simulate a physical system which its development depends exclusively on B's methods, whereas class A has just the function to create vectors that could be use in other class! In other words, class A and class B are totally independent, and it wouldn't makes sense if I defined all B's methods into A, because A creates any vectors that can be used by other class. A's functionality isn't simule that system, but just create vectors, whereas B has the responsability of simulate the physical system itself.
In my opinion, defining a program like that, it is much more structured and consistent, and totally oriented-object programming.
At first, I had all B's methods in A, thinking as you are telling me. But my teacher said to me that it is completly dumb to define the things like that, it's not structured and takes away all the object-orient logic.