【发布时间】:2016-12-19 22:02:46
【问题描述】:
我想重载数组运算符 (->) 作为指针的标准运算符,并且还想在控制台上显示一些想法。
我做到了……
Gamer.h 文件(Gamer 类与嵌套 Collecion 类):
class Gamer {
class Collection
{
public:
Collection();
Collection* operator->();
}
public:
Gamer();
Collection *deck;
}
Gamer.cpp
...
Gamer::Collection* Gamer::Collection::operator->()
{
cout << "Pointer on deck >> " << this << endl;
return this;
}
...
main.cpp - 我在这里为具有集合字段的 Gamer 对象声明并分配内存(作为指针)
Gamer *gamer;
Gamer::allocGamer(gamer);
当我想使用重载数组操作数时,我不能这样做:
gamer->deck->();
但我可以:
gamer->deck->operator->();
问题是为什么我不能只调用 gamer->deck->(); 而必须调用 gamer->deck->operator->();而是?
第二个问题 - 我应该如何重载箭头操作数才能直接访问像 gamer->deck->(); 这样的重载操作数?
【问题讨论】:
标签: c++ operator-overloading inner-classes