class Main
{
public:
int member;
};
//#define SAFE
int main()
{
#ifdef SAFE
deque<Main> v;
#else
vector<Main> v;
#endif
v.push_back( Main() );
#ifdef SAFE
deque<Main>::reference r = v.back();
#else
vector<Main>::reference r = v.back();
#endif
cout << r.member << endl; // ok
v.push_back( Main() );
cout << r.member << endl; // invalid read
}
@tags: CPlusPlus
Java: FUNCTION ARGS ARE REFERENCES
But make sure that it can be changed : inmutable
public class Arg_copy
{
public static void f(String arg) { arg ="overide fail"; } // = is actually an allocator
public static void f(String arg[]) { arg[0] = “overide success”;}
public static void main(String[[]] s) {
String[] a= {"original"};
f(a[0]); System.out.println(a[0]); // original
f(a); System.out.println(a[0]); // sucess
}
}