2 回答

TA貢獻(xiàn)1854條經(jīng)驗(yàn) 獲得超8個(gè)贊
static_cast操作符:該操作符用于非多態(tài)類型的轉(zhuǎn)換,任何標(biāo)準(zhǔn)轉(zhuǎn)換都可以使用他,即static_cast可以把int轉(zhuǎn)換為double,但不能把兩個(gè)不相關(guān)的類對象進(jìn)行轉(zhuǎn)換,比如類A不能轉(zhuǎn)換為一個(gè)不相關(guān)的類B類型。static_cast本質(zhì)上是傳統(tǒng)c語言強(qiáng)制轉(zhuǎn)換的替代品,也就是說static_cast<int> (a)和(int)a是一樣的。因此*static_cast<User*>(stack.Pop())與*(User*)statck.Pop()是相同的。
返回值可以轉(zhuǎn)變?yōu)橹羔槪?br/>這要看函數(shù)的反回值是什么,你程序中的Pop函數(shù)可能反回值就是一個(gè)指針,所以才可以強(qiáng)制將指針指向的類型進(jìn)行轉(zhuǎn)換的。比如函數(shù)Pop可以是這樣的User *Pop(...){...}它的反回類型可能就是User或者與User類相兼容的指針。

TA貢獻(xiàn)1864條經(jīng)驗(yàn) 獲得超2個(gè)贊
把stack.Pop()返回的值強(qiáng)制轉(zhuǎn)換為User指針,然后解引用就是前面加*號,獲取指針指向地址的變量的值。
- 2 回答
- 0 關(guān)注
- 407 瀏覽
添加回答
舉報(bào)