void function1()
{
std::string abc;
function2( abc );
}
void function2( std::string &passed )
{
// function1::abc is now aliased as passed and available for general usage.
cout << passed << " is from function1.";
}
void parentFunction( )
{
std::string abc;
function1( abc );
function2( abc );
}
void function1( std::string &passed )
{
// Parent function's variable abc is now aliased as passed and available for general usage.
cout << passed << " is from parent function.";
}
void function2( std::string &passed )
{
// Parent function's variable abc is now aliased as passed and available for general usage.
cout << passed << " is from parent function.";
}
4条答案
按热度按时间igetnqfo1#
C++的方法是通过引用传递
abc
给你的函数:你也可以将字符串作为指针传递,并在函数2中取消引用它。这更像是C风格的做事方式,不那么安全(例如:一个空指针可能被传入,如果没有良好的错误检查,它将导致未定义的行为或崩溃。
ukdjmx9f2#
让它全球化,那么双方都可以操纵它。
pobjuy323#
如果你想在函数2中使用函数1中的一个变量,那么你必须:
1.直接传过去
1.有一个更高范围的函数,该函数调用声明变量并传递它,或者
1.声明它是全局的,然后所有函数都可以访问它
如果你的function2是从function1调用的,那么你可以把它作为参数传递给function2。
如果function1没有调用function2,但两者都被function3调用,那么让function3声明变量并将其作为参数传递给function1和function2。
最后,如果function1和function2都没有被对方调用,也没有被代码中的同一个函数调用,那么将变量声明为全局变量,function1和function2就可以直接使用它。
gopyfrb34#
绝对不可能。该块的变量只能从该块直接访问。
指向对象的指针/引用可以被传递到从该块作为参数调用的函数中。