#include <iostream>
using namespace std;
class myclass
{
public:
void fun()
{
cout<<"Having some fun"<<endl;
}
};
class spointer
{
myclass * mptr;
public:
spointer(myclass * m)
{
mptr=m;
}
myclass * operator->()
{
return mptr;
}
};
int main() {
// your code goes here
spointer s(new myclass);
s->fun();
return 0;
}
時s->fun()
被稱爲main
,s->
將返回指針myclass
,但再怎麼fun()
被稱爲由指針指向myclass
對象?指針訪問操作符如何工作?
編輯:自spointer::operator->
返回一個指向myclass
,一個原因可以說s->fun()
,而不必說s->->fun()
什麼
對不起。你的問題到底是什麼? –
@JoelCornett我在猜測,因爲'spointer :: operator->'返回一個指向'myclass'的指針,爲什麼可以說's-> fun()',而不必說s - > - > fun ()'或什麼的。我認爲這是一個有效的問題。 – juanchopanza
@JoelCornett juanchopanza,解釋正確。 – q126y