To Veterans: Have a better way of coding this?

This is a discussion on To Veterans: Have a better way of coding this? within the C++ Programming forums, part of the General Programming Boards category; Welcome!!
I'm adding my source code in here to recieve criticism from other programmers....

first u mix include headers using some using std namespace and some not.This isnt a good start especially as none of those headers are used in main.h.Then using namespace std brings the whole of the namespace into scope when in reality you are not using any of it.
You should prefer using initialisation list instead of constructor body to initialise members.Only use body if u have to.No checking either for bounds. Not sure how class is to be used. Will negative values here make sense? Should u check X and Y before initialising members.
Just for aesthitic value a virtual destructor wouldnt have gone amiss. That would make this class more value as a base class.
operator + is ok as u have done it but again would this make sense still if x and y are negative?
friend int main() WTF what,why,are you trying to do? Why on earth should main be a friend of this class.Thats preposterous.
Information need not be a friend either. It uses accessor functions to access the classes internal data and does not need direct access.
Magnitude needs rewriting and also does not need to be a friend for same reasons as Information.
Your accessor functions are laughable. Where is your const correctness?!
Another word of advice.... In c++ we have references. They can dramatically reduce the need for passing pointers into functions.

Here is a better way. You have to be careful
with the normalization since you can have 0 vectors.
Right now I comparing floating point numbers to 0.0 but to
make it more robust you should compare it to a range of
numbers near 0. You can improve this further by maybe using
templates, adding substracting, multiplication etc. Another
way to handle the normalization is to return another vector
and make the action function const.

"The computer programmer is a creator of universes for which he alone is responsible. Universes of virtually unlimited complexity can be created in the form of computer programs." -- Joseph Weizenbaum.

"If you cannot grok the overall structure of a program while taking a shower, you are not ready to code it." -- Richard Pattis.

declare it in the class as virtual ~classname(); and in the implementation file add a do nothing implementation.

class MyClass
{
virtual ~MyClass();
};

MyClass::~MyClass() {}

If you have no intention of ever using this as a base class then this is probably overkill,if on the other hand you intend to derive from this class and use polymorphically then a virtual destructor is necessary.