用类做一个table怎么做?(有别的要求)Table& operator++(int); //数组下标自增操作

爱上珍珠的贝壳 2009-08-02 05:03:28
class Table
{
string* sname;
int sz;
public:
Table(int);
Table(const Table &);
Table& operator=(const Table &);
Table& operator++(int); //数组下标自增操作
~Table();
};


Table& operator++(int); //数组下标自增操作
这句不太理解,既然下标自增,为什么返回类,大家讨论一下


...全文
92 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
mstlq 2009-08-02
  • 打赏
  • 举报
回复
用int的前置++做个比方吧……

前置++其实是个操作符函数;他是返回int &型的……
楼主设想一下,如果++i操作将i自增后,返回void会怎样?
结果是:++i单独用当然没问题,但是你就不能使用"int j= ++i"之类的语句了哦,因为j是int,不能等于void的……

Table也是一样的……
如果你的operator++(int);不返回Table &类型的话,
你写 ++table1之类的语法当然没问题,但是你可以忍受table2 = ++table1这种写法被编译器报错吗^_^?
如果你想写table2 = ++table1,那请用Table& operator++(int);
lori227 2009-08-02
  • 打赏
  • 举报
回复
前置++ 返回的是引用, 后置++返回的是一个临时变量

e21124215 2009-08-02
  • 打赏
  • 举报
回复
没问题吧,如果是int类,
int& operator++(int &);

int a,b;
a++;
b++;
得到的也一样是int型的啊,

65,210

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧