hello friends, i am new to C++ i have a question, say i have 2 classes in 2 files (in same directory) say... A.cpp A.h and B.cpp B.h in B.cpp's public i.e. (Class B's public) i want to have an instance of Class A say A *test; Now, my question is whether it is sufficient to include the file A.h in B.h ? or i also need to say Class A (as a forward declaration in B.h) in B.h ? When to use the forward declaration ? when is it necessary ? is there any specific conditions ? Thanks in Advance..