本を読んでると出てきたのですが

struct A
{
int x;
A()
{
x = 0;
}
};

struct B : public A
{
int y;
};

こんな感じのコードが出てきて、実際サンプルコードのコンパイルも通ったのですが
・構造体にコンストラクタを入れる
・構造体を継承した構造体を作る
こんなんアリでしたっけ?
それと、classにするのに比べてどんなメリットがあるんでしょうか