char* p = "aaa"と
char p[] = "aaa"の違い分かってないでしょ
コンストラクタでメモリ確保してそこに渡された文字列をコピーしないとだめ