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

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

為什么這里面會出現錯誤?也就是說在什么情況下使用 -> ?

為什么這里面會出現錯誤?也就是說在什么情況下使用 -> ?

C++
慕田峪7331174 2023-04-15 13:09:30
#include <iostream>using namespace std;class Person{    public:    Person(){     };    void speak(){     cout<<"Helloworld"<<endl; }; };int main(){     Person p;     p->speak(); //error     p.speak();    return 0; }如果把里面的代碼換成:Person *p;    p->speak();//right   這里面是不是默認實例化了一個類?    p.speak();//error     return 0;求解惑,求指導。
查看完整描述

3 回答

?
Smart貓小萌

TA貢獻1911條經驗 獲得超7個贊

基本的語法知識,->是用在指針類型的類實例的。補充下,第二種情況下也僅僅是編譯能過吧,運行肯定就segmentfault了,原因是這時候并不會調用構造函數,當你用指針的時候一定要new一個對象,好了不多說了

查看完整回答
反對 回復 2023-04-18
?
慕慕森

TA貢獻1856條經驗 獲得超17個贊

指針類型有重載了->操作符 所以對于指針 使用->是沒問題的,對象則用.操作符。

當然對象如果重載了->也是可以用->的 就看你自己有沒有去實現他了 沒有的話 用肯定是不行的。


查看完整回答
反對 回復 2023-04-18
?
浮云間

TA貢獻1829條經驗 獲得超4個贊

a->someMethod()一般情況下等價于(*a).someMethod()
.用于實例上,->用于指針上。。。

但僅僅是一般情況。


查看完整回答
反對 回復 2023-04-18
  • 3 回答
  • 0 關注
  • 211 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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