从函数内部更改参数
Changing an argument from inside a function
考虑函数A,B和C。
void A(){
int arg;
B(arg);
}
void B(int& arg){
C(arg)
}
void C(int& arg){
arg = 10;
}
我希望我的参数的值由函数 C 设置。此代码给出错误。函数调用的顺序必须是 A 调用 B,它调用 C。怎么做?
这应该有效,但你必须这样写(重新排序函数定义):
void C(int& arg){
arg = 10;
}
void B(int& arg){
C(arg);
}
void A(){
int arg;
B(arg);
}
或者转发声明之前的函数:
void B(int&);
void C(int&);
void A(){
int arg;
B(arg);
}
void B(int& arg){
C(arg);
}
void C(int& arg){
arg = 10;
}
这样,A()
知道B()
知道C()
。
对源代码中的函数重新排序:C B A 而不是 A B C。
在A()
函数之前添加原型。在你的代码中,在编译A()
的过程中,编译器对B()
一无所知;因此,通过函数原型,您可以告诉编译器有关它的信息。同样适用于C()
void B(int&);
void C(int&);
void A(){
int arg;
B(arg);
}
void B(int& arg){
C(arg);
}
void C(int& arg){
arg = 10;
}
int main() {
int a=20;
A();
return 0;
}
相关文章:
- SFINAE 内部概念模板参数
- 作为模板模板参数的内部模板类
- 自动参数如何在内部工作
- 如何使结构内部的可变参数模板可以在外部访问?
- 如何处理可能指向内部数据的参考参数
- 如何从对象内部的 typedef 获取模板参数类型
- 是定义的函数参数的内部执行顺序
- 用相同的参数将内部和外部构造函数分开
- 宏 htonl 将内部逗号解释为参数分隔符
- 参数内部和外部的指针
- 将模板参数传递到内部结构时出错
- 函数和内部函数相同的参数
- 从内部类型参数推断外部类型
- C :如何通过其构造函数的参数初始化类内部矩阵的尺寸
- _mm_extract_epi8(..) 内部函数,采用非文字整数作为参数
- 从函数内部更改参数
- 定义变量以保存内部参数
- 如何通过参数内部的引用传递对象
- 模板化结构的友元函数,其参数类型取决于结构的内部
- 在for语句参数内部的C/C++算术运算中