gpt4 book ai didi

c++ - C++中默认参数类型的限制是什么

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

void foo(Type1 a, Type2 b = value2)

请问Type2作为接受默认值的参数有什么限制?我认为 type2 的 value2 在编译时应该是可确定的。例如,一个整数。它是否正确?

最佳答案

你有很大的灵 active 。 value2 需要是一个在函数声明点有效的表达式(“有效”是指它使用的名称在范围内等),并且其类型必须是可隐式转换的到 Type2,与任何初始值设定项相同。 value2 每次调用该函数时都会计算。例如:

#include <vector>
#include <iostream>

int i;

void foo(std::vector<int> v = std::vector<int>(i)) {
std::cout << v.size() << "\n";
}

int main() {
i = 1;
foo();
i = 2;
foo();
}

使用正确的初始化器,Type2 甚至可以是引用类型:

void bar(int &j = i);

关于c++ - C++中默认参数类型的限制是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20707416/

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