// import .example; int main() { // This should invoke foo(double) .example.foo(3.14159); // This should invoke foo(double, char *) .example.foo(3.14159, "Pi"); // This should invoke foo(int, int) .example.foo(3, 4); // This should invoke foo(char *) .example.foo("This is a test"); // This should invoke foo(long) .example.foo(42); /* // This should invoke Bar::Bar() followed by foo(Bar *) foo(Bar.new); // Skip a line write("\n"); // This should invoke Bar::Bar(double) Bar.new(3.14159); // This should invoke Bar::Bar(double, char *) Bar.new(3.14159, "Pi"); // This should invoke Bar::Bar(int, int) Bar.new(3, 4); // This should invoke Bar::Bar(char *) Bar.new("This is a test"); // This should invoke Bar::Bar(int) Bar.new(42); // This should invoke Bar::Bar() for the input argument, // followed by Bar::Bar(const Bar&). Bar.new(Bar.new); // Skip a line write("\n"); */ // Construct a new Bar instance (invokes Bar::Bar()) /* bar = Bar.new; // This should invoke Bar::foo(double) bar.foo(3.14159); // This should invoke Bar::foo(double, char *) bar.foo(3.14159, "Pi"); // This should invoke Bar::foo(int, int) bar.foo(3, 4); // This should invoke Bar::foo(char *) bar.foo("This is a test"); // This should invoke Bar::foo(int) bar.foo(42); // This should invoke Bar::Bar() to construct the input // argument, followed by Bar::foo(Bar *). bar.foo(Example::Bar.new); // This should invoke Bar::spam(int x, int y, int z) bar.spam(1); // This should invoke Bar::spam(double x, int y, int z) bar.spam(3.14159); */ write("Goodbye\n"); return 0; }