[過去ログ]
C++相談室 part165 (1002レス)
C++相談室 part165 http://mevius.5ch.net/test/read.cgi/tech/1698705458/
上
下
前次
1-
新
通常表示
512バイト分割
レス栞
抽出解除
レス栞
このスレッドは過去ログ倉庫に格納されています。
次スレ検索
歴削→次スレ
栞削→次スレ
過去ログメニュー
リロード規制
です。10分ほどで解除するので、
他のブラウザ
へ避難してください。
818: デフォルトの名無しさん (ワッチョイ 6ea1-pnyl) [sage] 2025/04/06(日) 00:01:49.29 ID:xzDebXnC0 質問なのですが基底クラスでpublicとした仮想関数の可視性を派生クラスでprivateに狭めることができるのですが なんでこんな仕様なの? これは逆に言うと派生クラスでprivateとした一般メソッドに対し、 たまたま同じシグネチャの仮想関数を基底クラスで定義されたら基底クラス経由でprivateとしたメソッドを外部から呼び出せ てしまいカプセル化の危機……! そういう仕様になっているメリットとは一体…… http://mevius.5ch.net/test/read.cgi/tech/1698705458/818
821: はちみつ餃子 ◆8X2XSCHEME (ワッチョイ cd32-nY3F) [sage] 2025/04/06(日) 09:09:40.72 ID:CSMreA7R0 >>818 コードで言えばこういう状況かな? https://wandbox.org/permlink/gEndnLHWa7qEvNRP 基底にある仮想関数と同じシグネチャならオーバーライドするという規則は単純に言語設計の失敗。 だからこそ override 指定子が導入された。 override 指定子ではオーバーライドのつもりでオーバーライドになっていないときを検出できても オーバーライドではないつもりでオーバーライドになってしまうことは検出できないのだが…… 互換性を壊す変更を入れるわけにもいかずそのままズルズルと今まで失敗を引きずってきたという歴史的経緯。 http://mevius.5ch.net/test/read.cgi/tech/1698705458/821
メモ帳
(0/65535文字)
上
下
前次
1-
新
書
関
写
板
覧
索
設
栞
歴
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
AAサムネイル
Google検索
Wikipedia
ぬこの手
ぬこTOP
0.033s