快速提问,(C ++)
假设我有一个名为findPlayer( Player &p )
如果我按以下方式打电话
findPlayer(Player());
p
内的本地findPlayer
的常量是什么?
另外,Player()
是通过引用还是值传递的?我猜测价值......
答案 0 :(得分:0)
无视
这一事实findPlayer(Player());
不应该编译,p
中findPlayer()
的行为不依赖于它的调用方式。这会破坏功能界面的目的。
如果您的界面为findPlayer(Player& p)
,那么您告诉全世界findPlayer
可以通过p
的公共界面访问来自Player
的任何内容on-const对象。
答案 1 :(得分:0)
findPlayer( Player &p )
的 findPlayer(Player())
应该给出指示常量的错误,该函数应该被定义为findPlayer(const Player &p )
,并且除了使用传递引用方法之外,常量引用将是无用的对于那种方法。