您的位置:首页 > 其它

运算符重载之* ->

2015-12-12 09:13 225 查看
版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。 本文链接:https://blog.csdn.net/amao992/article/details/50272809
#include <iostream>
//cooldog

class Animal {
public:
Animal(int legs, int id) : _legs(legs), _id(id) {}

void print() {
std::cout << "legs:" << _legs << "; id:" << _id << std::endl;
}
private:
int _legs;
int _id;
};

class Exam {
public:
Exam(Animal a) : _a(a) {}

Animal& operator*() {
return _a;
}

Animal* operator->() {
return &_a;
}
private:
Animal _a;
};

int main() {
Animal my(2, 201208);
Exam ex(my);

(ex.operator->())->print();
ex->print();

(ex.operator*()).print();
(*ex).print();
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: