C++重载->

class A {
public:
	void display() {
		cout << "A::display()" << endl;
	}
};

class Demo {
public:
	Demo(A& ra):ptr(&ra){}
	A* operator->(){return ptr;}
private:
	A* ptr;
};

class Demo2 {
public:
	Demo2(A& ra):p(ra){}
	Demo operator->(){return p;}
private:
	Demo p;
};
int main(int argc, char const *argv[])
{
	A a;
	Demo d(a);
	d->display();

	cout << endl;

	Demo2 d2(a);
	d2->display();
	return 0;
}
发布了343 篇原创文章 · 获赞 57 · 访问量 20万+

猜你喜欢

转载自blog.csdn.net/jadeshu/article/details/103917142