Can anyone tell me how to access variables declared and defined in a function in another function. E.g
void function1()
{
string abc;
}
void function2()
{
I want to access abc here.
}
How to do that? I know using parameters we can do that but is there any other way ?
Make it global then both can manipulate it.
If you have a variable in function1 that you want to use in function2, then you must either:
If your function2 is called from function1, then you can just pass it as an argument to function2.
If function1 doesn't call function2, but both are called by function3, then have function3 declare the variable and pass it to both function1 and function2 as an argument.
Finally, if neither function1 nor function2 is called from each other, nor from the same function in code, then declare the variable to be shared as a global, and function1 and function2 will be able to directly use it.
There is absolutely no way. Variables of the block can be directly accessed ONLY from that block.
Pointers/references to the object can be passed into functions that are called from this block as parameters.
The C++ way is to pass
abc
by reference to your function:You may also pass your string as a pointer and dereference it in function2. This is more the C-style way of doing things and is not as safe (e.g. a NULL pointer could be passed in, and without good error checking it will cause undefined behavior or crashes.