代码如下,为什么形参 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();
}

C++编程问题请大神赐教谢谢
- 写回答
- 好问题 0 提建议
- 关注问题
- 邀请回答
-
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";本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报