/* * Program to illustrate that class instaces in C++ can be created on the * stack (without new), unlike Java. Passing class instances to functions, * and during assignment statements create "a copy" of the actual/RHS * variable instance. */ public class A1CppJava{ public static void main(String[] args) { Blip main_b = new Blip(); main_b.local = 100; main_b.ptr = new int[2]; main_b.ptr[0] = 1; main_b.ptr[1] = 2; System.out.println("Values BEFORE function call: local: " + main_b.local + " ptr[0]: " + main_b.ptr[0] + " ptr[1]: " + main_b.ptr[1] + "\n"); frap(main_b); System.out.println("Values AFTER function call: local: " + main_b.local + " ptr[0]: " + main_b.ptr[0] + " ptr[1]: " + main_b.ptr[1] + "\n"); } public static void frap(Blip arg) { System.out.println("Values START function frap: local: " + arg.local + " ptr[0]: " + arg.ptr[0] + " ptr[1]: " + arg.ptr[1] + "\n"); arg.local = 200; arg.ptr[0] = 10; arg.ptr[1] = 20; System.out.println("Values END function frap: local: " + arg.local + " ptr[0]: " + arg.ptr[0] + " ptr[1]: " + arg.ptr[1] + "\n"); } } class Blip { public int local; public int[] ptr; }