| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2912 人关注过本帖
标题:这个错误如何解决?
只看楼主 加入收藏
hffjhhh
Rank: 1
等 级:新手上路
帖 子:127
专家分:7
注 册:2019-4-10
收藏
得分:0 
改为std::string & co这样后,有新的问题,

这行出现错误:
asd.acquire("NanoSmart",20,12.50);

显示以下错误信息:
[Error] no matching function for call to 'Stock::acquire(const char [10], int, double)'

这行出现错误:
void Stock::acquire(std::string &co,int n,double pr){

显示以下错误信息:
[Note] void Stock::acquire(std::string&, int, double)
[Note] no known conversion for argument 1 from 'const char [10]' to 'std::string& {aka std::basic_string<char>&}'

如果改为const std::string & co就可以,
为什么不能改为std::string & co?一定要加上const?
代码如下:
程序代码:
#include<iostream>
#include<string>
class Stock{
private:
    int shares;
    std::string company;
    double share_val;
    double total_val;
    void set_tot(){ 
        total_val=shares*share_val;
    }
public:
    void acquire(std::string &co,int n,double pr);
    void buy(int num,double price);
    void sell(int num,double price);
    void update(double price);
    void show();
};

void Stock::acquire(std::string &co,int n,double pr){
    company=co;
    if(n<0){
        std::cout<<"Number of shares can not be negative;"<<company<<"shares set to 0.\n";
        shares=0;
    }
    else
        shares=n;
    share_val=pr;
    set_tot();
}
void Stock::show(){
    std::cout<<"company:"<<company
    <<"     Shares:"<<shares<<'\n'
    <<"share price:$"<<share_val
    <<"     total worth:$"<<total_val<<'\n';
}

int main() {
    Stock asd;
    asd.acquire("NanoSmart",20,12.50);
    asd.show();
    return 0;
}



[此贴子已经被作者于2020-12-16 16:41编辑过]

2020-12-16 16:33
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:528
帖 子:9025
专家分:54030
注 册:2011-1-18
收藏
得分:0 
回复 11楼 hffjhhh
const char [10] 当然不能 转化为,或生成 std::string&
你知道 引用(&) 是什么意思吗?
假如
    const char a[10] = "NanoSmart";
    std::string& b = a;
是合法的话,那执行 b = "abc" 后修改的是谁?

const char [10] 可以构造出一个std::string的对象,所以 std::string 正确
const char [10] 可以构造出一个std::string的临时对象,并引用它,所以 const std::string& 正确
2020-12-16 20:17
快速回复:这个错误如何解决?
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.020316 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved