亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

麻煩幫忙看看,*static_cast//代表什么意思?

麻煩幫忙看看,*static_cast//代表什么意思?

慕標琳琳 2021-06-23 18:15:26
stack.Pop()//類里一個函數cout<<*static_cast<User*>(stack.Pop())<<endl;*static_cast//代表什么意思?User*//這個User類類型的指針吧?組合一起代表什么意思?
查看完整描述

2 回答

?
嗶嗶one

TA貢獻1854條經驗 獲得超8個贊

static_cast操作符:該操作符用于非多態類型的轉換,任何標準轉換都可以使用他,即static_cast可以把int轉換為double,但不能把兩個不相關的類對象進行轉換,比如類A不能轉換為一個不相關的類B類型。static_cast本質上是傳統c語言強制轉換的替代品,也就是說static_cast<int> (a)和(int)a是一樣的。因此*static_cast<User*>(stack.Pop())與*(User*)statck.Pop()是相同的。

返回值可以轉變為指針?
這要看函數的反回值是什么,你程序中的Pop函數可能反回值就是一個指針,所以才可以強制將指針指向的類型進行轉換的。比如函數Pop可以是這樣的User *Pop(...){...}它的反回類型可能就是User或者與User類相兼容的指針。

查看完整回答
反對 回復 2021-06-28
?
慕斯王

TA貢獻1864條經驗 獲得超2個贊

把stack.Pop()返回的值強制轉換為User指針,然后解引用就是前面加*號,獲取指針指向地址的變量的值。

查看完整回答
反對 回復 2021-06-28
  • 2 回答
  • 0 關注
  • 394 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號