漏れはそもそも
> A(const double& rval)
が気に食わん。
double程度に、なぜ参照を使うかなぁ。

で A(1.0) なんて書いても、そりゃおかしいんじゃねーの?
だって、定数のアドレスを求めようとしてるじゃんかよ。