qq_41517828 2018-08-28 09:17 采纳率: 25.9%
浏览 498
已采纳

C++编程问题请大神赐教谢谢

代码如下,为什么形参 const std::string & co 要用引用,直接const std::string co 不行吗,company = co,不是一样吗?
void stock::acquire(const std::string & co, long n, double pr) {
company = co;
if (n < 0) {
std::cout << "Number of shares can't be negative;"
<< company << "shares set to 0.\n";
shares = 0;
}
else
shares = n;
share_val = pr;
set_tot();
}

  • 写回答

5条回答 默认 最新

  • xingjianfengaa 2018-08-28 10:05
    关注

    引用用变量本身,传非引用参数时,在内存中会把你伟入的变量复制一份传到函数中,并不是你原来定义的那一个变量了 虽然内容是一样的,但是指针不同,
    这时如果不加const,你去修改入参,函数之前定义的那个变量值不会改变,

    void test(string &str)
    {
    //str是传入变量的本身
    str="cba";
    }
    void test1(string str)
    {
    //str是原来变量的一个复制体
    str="cba";
    }
    main中:
    string str="abc";
    test1(str);//str="abc";
    test(str);//str="cba";

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(4条)

报告相同问题?