C++相談室 part161
at TECH
[
2ch
|
▼Menu
]
■コピペモード
□
スレを通常表示
□
オプションモード
□このスレッドのURL
■項目テキスト
400:アリ人間 22/07/27 00:48:37.81 LZk+uw73.net >>398 需要なさそうなC++の派生みたい。 人気が出てきたらスレを分けよう。 401:デフォルトの名無しさん 22/07/29 01:50:30.95 0LOpWdsN.net 通常のキャストと参照へのキャストの違いを教えてください。 #include <iostream> class Base {}; class Derived : public Base {}; int main() { Derived d; Base& b1 = static_cast<Base&>(d); //@ Base& b2 = static_cast<Base>(d); //A } このようなとき、@だとコンパイルOK、Aだとコンパイルエラーになります。 どのような違いがあるのでしょうか? 402:デフォルトの名無しさん 22/07/29 02:07:00.18 drZ02Ew4.net >>401 キャストが原因でコンパイルエラーが出てるわけではないです 簡単に言うと②の右辺は rvalue なので非 const lvalue に束縛できません 403:デフォルトの名無しさん 22/07/29 08:15:31.60 FIiQg0BH.net >>401 値へのキャストは、一時オブジェクトを作り必要ならコンストラクタを実行する 参照へのキャストは、一時オブジェクトを作らない ただしconst修飾された参照と右辺値参照の場合はこの限りでない
次ページ
最新レス表示
スレッドの検索
類似スレ一覧
話題のニュース
おまかせリスト
▼オプションを表示
レスジャンプ
mixiチェック!
Twitterに投稿
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch
568日前に更新/289 KB
担当:undef