为了账号安全,请及时绑定邮箱和手机立即绑定

关于后置++中参数的问题请教

在定义后置++的函数,如下代码:

Coordinate Coordinate::operator++(int)
{
Coordinate old(*this);
this->m_iX++;
this->m_iY++;
return old;
}

问题1:为什么在operator++里传递的参数类型一定是int型的?

问题2:对于Coordinate old(*this);,实际上相当于定义了一个Coordinate类的old对象吧,并且还要传递*this。那么这个*this是coordinate类型的,那么对应的构造函数是哪个?

 谢谢。

正在回答

1 回答

大概想明白了:

  1. int只相当于一个信号,告诉编译区分前置++和后置++。

  2. 是一个复制构造函数,当自己没定义的时候由编译器自己创建并调用。

  如果以上我的认识有什么不完善的地方,请各位大神完善补充。

  谢谢。

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
C++远征之模板篇
  • 参与学习       91156    人
  • 解答问题       318    个

本C++教程力求即学即会,所有知识以实践方式讲解到操作层面

进入课程

关于后置++中参数的问题请教

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信