Reputation: 25
I would like some clarification about including classes in c++. I don't know the good way to do it because i don't know the differences between theme
#pragma once
#include "B.h" // Is it enough to include like this? ?
class B; // what this line does ?
class A : public B // what public B does here ?
{
// .......
};
So how do i know if i should use class b or public B or juste a #include "B.h" ? I hope i was clear enough and thanks for the help
Upvotes: 0
Views: 582
Reputation: 96166
#include "B.h" // Is it enough to include like this? ?
Yes.
class B; // what this line does ?
This is an alternative to including B's header. Doing both is redundant.
It gives you less freedom. It allows you to create pointers and references to B
, but not create instances of it, nor inherit from it, nor access its members.
On the other hand, class B;
compiles faster, and can be used to break circular include dependencies.
class A : public B // what public B does here ?
Class A inherits from class B, publicly. Read about inheritance in your favorite C++ book.
Upvotes: 1