>「引数なしでもオブジェクトを生成したい」から「コンパイルエラーにならないように」
>「引数なしのコンストラクタを書く」のは、現実的ではないかと思います。

そういうケースはある。だけど、それはそういうケースがあるだけで、
コンストラクタの説明としては著しく不適切だと思うよ。
C++は変数の初期化を行わない言語で、コンストラクタは、
それを行うための仕組み。本来ならまず、引数なしのコンストラクタで
そのやり方を説明して、引数付きのコンストラクタを紹介して、
これによって、外部から初期値を与えることもできる、というのが
王道の説明だと思う。
実際に開発していると、引数付きコンストラクタよりも引数なしの
コンストラクタを実装する機会の方が断然多い。むしろそっちの方が
コンストラクタの実装としては重要でしょう。
コバケンみたいに、引数付きのコンストラクタの説明をして、それを
作ると引数なしでインスタンスを作成したときにコンパイルエラーが出る、
そのエラーを出さないためには、自分で引数なしのコンストラクタを実装
すればいい、なんていう説明は、どう考えてもおかしいです。

>なかなかCからC++に行けずに悩んでいて、コバケンを読んで、
>すっきりしたひとつは、コンストラクタの部分です。

このスレで入門書が叩かれることが多いのは、まあダメ本が多いという
こともあるけど、それを読んで「そういうものなんだ」と思い込んでしまう
初心者が出てくることを危惧していることもあると思う。