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

封装函数为什么跟以前不一样?

请问,老师在封装Coordinate的setX等函数时为什么要在前面加上“Coordinate::”?这样不是跟头文件里的不一样了吗?以前不是都是直接定义成“void setX(int x)”?

正在回答

1 回答

这里用到的“::“是函数作用域的意思,表示使用的是coordinate中的setX函数,而非其他域中的,可能存在的其他setX函数

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

懿旖星晨 提问者

非常感谢!
2016-04-14 回复 有任何疑惑可以回复我~
#2

懿旖星晨 提问者

那么可以不用“::”这个吗?
2016-04-14 回复 有任何疑惑可以回复我~
#3

米斯特尔P 回复 懿旖星晨 提问者

如果你所编辑的函数名不会引起混淆的话可以不用 但在程序编辑时,如果已经拥有不同名称函数域(如A B),但各域中都有相同名称函数(如都包含有名为setX()的函数),就应该使用A::setX() 和B::setX()加以区分。
2016-04-14 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
C++远征之封装篇(下)
  • 参与学习       70919    人
  • 解答问题       514    个

封装--面向对象三大特征之一,通过案例让C++所学知识融会贯通

进入课程

封装函数为什么跟以前不一样?

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