首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

有关引用的有关问题

2012-03-22 
有关引用的问题一个函数的声明是:int bar(String &s)对这个函数的一个调用是:bar(hello world)请问这

有关引用的问题
一个函数的声明是:int bar(String &s);
对这个函数的一个调用是:bar("hello world");

请问这样调用有错误吗?为什么错误?怎么修改才正确?

[解决办法]
有错, "hello world"是const 字符串,不允许修改它的内容,你可以像下面这样改:
string str = "hello world";
bar(str);
[解决办法]
我也是初学者,非const引用形参只能接收非const实参,而"hello world"会作为const对象,编译出错。可以将String &s改为const String &s或者非引用形参String s。前者不允许函数里对参数更改。后者可以,但是是复制实参的模式。希望对你有帮助。
[解决办法]
是没有修改,但是,编译器是不会去判断你在调用的程序中有没有去改变,如果你确实不会修改,那么你定义为int bar(const string &s);吧

[解决办法]
你的形参是普通的string&类型,而实参是const string类型,普通引用类型不能接受const实参
[解决办法]
改成int bar(const String &s);
楼上说的很清楚了
[解决办法]
改成int bar(const String &s);

或者:string str = "hello world";
bar(str);

热点排行