gpt4 book ai didi

c++ - c++中引用的使用

转载 作者:行者123 更新时间:2023-11-30 04:13:47 26 4
gpt4 key购买 nike

我正在努力思考引用的使用。到目前为止,我已经明白引用需要保持不变,它们就像变量的别名。但是,在为堆栈编写代码时,当我通过引用 push 函数传递值时。我必须包含“const”关键字。我需要知道为什么这是必要的。

简而言之,为什么这行得通

class stack
{
public:
void push(const int &x);
};

void stack::push(const int &x)
{
// some code for push
}

int main()
{
stack y;
y.push(12);
return 0;
}

但这不是吗?

class stack
{
public:
void push(int &x);
};

void stack::push(int &x)
{
// some code for push
}

int main()
{
stack y;
y.push(12);
return 0;
}

最佳答案

如果你使用

int main()
{
stack y;
int X = 12;
y.push(X);
return 0;
}

即使您删除“const”,您也会看到它有效。因为12是常数,而X不是常数!

换句话说:

  • 如果您使用 void push(const int &x); --- 您可以使用 const 或非 const 值!
  • 如果您使用 void push(int &x); --- 您只能使用非常量值!

基本规则是:

  • 我的函数不需要更改参数值:使用 void push(const int &x);
  • 我的函数需要改变参数的值:使用void push(int &x); [注意这里如果你打算改变你的参数的值,当然它不能是一个常量 12,但是一些变量的值为 12,这就是区别!]

关于c++ - c++中引用的使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19215639/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com