>>852
とりあえず、デストラクタ内の if (name) は意図どおりには動かないぞ。
sampleのオブジェクトがスタックなのかヒープなのかは知らんが
どちらにしろ、nameが0(NULL)で「初期化」されることはない。
したがって、「確保されていたらdelete」の判断には使えない。
まあ、NULLをdeleteしてもかまわないわけだがね。

あと、皆も言ってるが、この手の「中身の実体を別途(ヒープに)確保する」ものは
自分でコピーコンストラクタを書かない限り、コピー(代入)はうまく動かない。
仮にsampleの用法が「必ずヒープから確保して、実体コピーはしない」というものだけであっても
宣言だけはしてコピー不可にしておくべき。