[過去ログ] C++相談室 part134 (1002レス)
前次1-
抽出解除 必死チェッカー(本家) (べ) 自ID レス栞 あぼーん

このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
947
(1): デフォルトの名無しさん (ワッチョイ b37e-YG9/) [sage] 2018/03/31(土) 01:02:47 ID:19OTzhSN0(1/3) AAS
採択されてもプロパティのアドレスをどうやって取るのかっていうことで標準化委員会で揉めて10年は停滞する
949: デフォルトの名無しさん (ワッチョイ b37e-YG9/) [sage] 2018/03/31(土) 02:09:16 ID:19OTzhSN0(2/3) AAS
>>948
948(2): はちみつ餃子◆8X2XSCHEME (ワッチョイ 5b6f-kUw7) [sage] 2018/03/31(土) 01:48:24 ID:nFIfPX7B0(1/6) AAS
>>947
サブオブジェクトがユニークアドレスを取れなくてもいいことを示す [[no_unique_address]] 属性が C++20 のドラフトに入った。
外部リンク[html]:www.open-std.org
オブジェクトがユニークなアドレスを持つ原則を捨てたわけ。

これを踏襲するなら、プロパティのアドレスは取れないってことにして解決するのが自然で、揉める余地はそんなにないと思う。
実際にアドレスは存在しないわけだし、存在しないものを返しようがないじゃん。
最初のプロパティの提案がいつかはしらないけど
実際にこれが決まったとして最短で2020年
そこから更に何年かかるのか
980: デフォルトの名無しさん (ワッチョイ b37e-YG9/) [sage] 2018/03/31(土) 13:29:05 ID:19OTzhSN0(3/3) AAS
>>950
950(3): デフォルトの名無しさん (ワッチョイ 9368-uaFS) [sage] 2018/03/31(土) 04:29:43 ID:O6Ruc86y0(1) AAS
抽象クラス"Super"から派生した子クラス、"A", "B", "C"があったとします。

Super* obj1 = new A();
Super* obj2 = new B();
Super* obj3 = new C();

訳あって動的に作成したインスタンスobj1〜3を一度deleteしたのち
再び同じ子クラスでインスタンスを作成しようと思います。

obj2がクラスBのインスタンスであることが一目で分からない場合に
obj2がクラスBのインスタンスであることを突き止め、一度deleteし、
再度クラスBでインスタンスを作成する方法はあるでしょうか?

ちなみに必死に考えて考えついた方法ですが
クラスA, B, Cにそれぞれ「私はAクラスです」「私はBクラスです」みたいな
文字列を出力する共通メソッドをpublicで作成し、そのメソッドを実行して
帰ってきた文字列からそれがどのクラスのインスタンスか判別が付くのではないかなと思いました。
決してスマートな方法とは言えませんが・・・

もっとスマートな方法はありますか?
std::pair<Super*,std::string> obj2 = std::make_pair(new B(), "ClassB");
前次1-
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 0.037s