永发信息网

构造函数A(const string &b):i(0),s(b),d(0.0){};

答案:2  悬赏:10  手机版
解决时间 2021-02-27 23:09
构造函数A(const string &b):i(0),s(b),d(0.0){};
最佳答案
A a("hello"); 这样构造的函数,“hello”,相当于char[]的变量,而你构造函数中用的是string类型形参,这样必定造成传递的参数类型不匹配。
当传递的类型不匹配时,以前的老版编译器可以自动创建临时变量,上述编译在老版中将可行,但现在新版的将出现编译错误;在当前的新版编译器中,只有用const修饰的引用时,才会创建临时变量,所以就出现题主那种状况。
如果用:
string str="hello";
A a(str); 这样不加const编译也行
或A a((string)"hello"); 这样也可行
全部回答
你是不是直接使用字符串常量来初始化类,如
A a("hello");
由于这个构造函数传递的是引用,"hello"作为一个常量,类型是const string,通过引用传递的话,必须是常量引用。追问是不是传递值是引用的话,实参是常量,这个引用也必须是常量的引用
如果实参是非常量,这个引用既可以是常量也可以是普通变量?追答对的,因为参数传递的过程包含类型转换,对常量的引用可以传入常量和变量参数,不会降低访问限制等级;而对变量的引用就不能传入常量了,因为有可能造成非法的修改。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
多肉代表什么意思
补写出下列名句名篇中的空缺部分。(任选3小
曙光佳苑这个地址在什么地方,我要处理点事
书信的格式
sqlserver中去掉空格的函数是社么
断断续续的什么填空
如果你的话说到一半,被被人打断了,你会怎样呢
毕业两年学土木工程想考研有必要么?
牧野区新乡新艺美术培训中心我想知道这个在什
海西州建筑工程有限责任公司在哪里啊,我有事
高分求救,急啊!电脑蓝屏 STOP:0x00000
下舒何地址有知道的么?有点事想过去
【干热灭菌】干热灭菌法要求的温度和时间为()
有没有正宗的日本招魂曲
电视剧《真爱趁现在》在哪有看?或者有没有共
推荐资讯
康古堂颈腰椎服务站德宏NO.1我想知道这个在什
谁知道QQ三国的洛阳背景音乐是什么
请问谁知道青岛到聊城的汽车随车电话,谢谢
世华地产昌龙苑(第二十九分店)地址在什么地方
明佳电子有限公司我想知道这个在什么地方
穆村中心卫生院-急诊科地址在什么地方,想过
企业银行回单怎么打印
农业银行工作包吃住吗
小米3连接小米手环怎么设置手机应用通知
“不”字用五笔怎么打
火锅店中鹌鹑蛋属于荤菜还是素菜
以下为某银行转账支票背面背书签章的示意图。
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?