【发布时间】:2020-11-08 22:47:27
【问题描述】:
我有下面的例子
int main() {
...
}
void parameterList() {
...
}
void myMethodA() {
...
}
void myMethodB() {
...
}
void myMethodC() {
...
}
我已阅读有关此主题的几篇 StackOverflow 帖子,并了解将变量从 myMethodA() 传递到 myMethodB(),我需要在 myMethodA() 中使用变量调用 myMethodB()。说明
void parameterList() {
...
int someInteger = 45;
string someName = "John";
int otherInteger = 20;
myMethodB(someName, someIntegers);
myMethodC(otherInteger);
}
void myMethodB(string &someName, int &someInteger) {
...
string another_someName = someName;
int another_someInteger = someInteger;
...
}
void myMethodC(int &otherInteger) {
...
int another_someInteger_two = otherInteger;
...
}
parameterList() 是一个函数,其中包含多个 myMethod() 函数的多个变量。在初始程序运行时,parameterList() 必须首先在 main 中运行以获取所有必要的变量。理想情况下,主函数将从 parameterList() 中获取所有这些变量,并将其传递给主函数中的 myMethod()。说明
Step 1
main function will run parameterList()
Step 2
parameterList() process and have multiple variables meant for multiple myMethod()
Step 3
main function should have a variable that can "store" these variables in order to pass it to all the myMethod() for further processing
主函数不会运行 myMethodB(),直到它被告知这样做并且来自 myMethodA() 的变量在主函数中时。
非常感谢任何对此的澄清。感谢您抽出宝贵时间!
【问题讨论】:
-
如果你不能通过引用传递或返回一些保存数据作为返回值的容器,那么你必须使用全局变量(这是一个不好的做法)
-
上下文是什么?为什么不在 main 中初始化它们并通过引用传递给 A,而后者又通过引用传递给 B?
-
myMethodA() 被假定为一个文件,其中包含其他 myMethodN 函数的所有必要数据参数(假设有 > 5 个 myMethod - myMethodB、myMethodC 等)。每个 myMethodN 都需要来自 myMethodA() 的一些数据参数。
-
@SunnyBoiz 所以,你的意思是每个函数的数据可能不同?粗略地说,
methodD()想要var4而不是var1、var2、...? -
没错。如果最初的帖子不清楚,那我很糟糕。
标签: c++ parameter-passing pass-by-reference main