gpt4 book ai didi

c++ - 有没有办法声明函数的输入参数必须是常量引用?

转载 作者:太空宇宙 更新时间:2023-11-04 15:25:40 25 4
gpt4 key购买 nike

这样做的动机是(很少)我需要知道类构造函数或函数的输入参数通常是常量。通常当类是“自动化”某些过程的助手时。
示例:
Is this the OK scoped way to get random element from the container?
如果您查看代码,很明显如果传递给构造函数的容器在以后发生更改,则类功能将被破坏。那么有没有办法让函数“需求”const 而不是“ promise ”const。

例子:

int f(const vector<int>& v)
{
return v.size();
}
int main()
{
vector<int> v;
v.push_back(42); // can f be changed to reject v because it is not const
cout << f(v);

}

最佳答案

声明但不实现非常量版本。

int f(vector<int>& v);

尝试传递一个非常量 vector 将被解析为这个函数,然后你会得到一个链接器错误,因为不存在这样的函数。

一些花哨的模板游戏可能会把它变成一个编译时错误。

关于c++ - 有没有办法声明函数的输入参数必须是常量引用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9100100/

25 4 0
文章推荐: asp.net - PlaceHolder 和
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com