Converting Default Function Arguments in C++ to Java

By: Charles Emailed: 1727 times Printed: 2328 times    

Latest comments
By: rohit kumar - how this program is work
By: Kirti - Hi..thx for the hadoop in
By: Spijker - I have altered the code a
By: ali mohammed - why we use the java in ne
By: ali mohammed - why we use the java in ne
By: mizhelle - when I exported the data
By: raul - no output as well, i'm ge
By: Rajesh - thanx very much...
By: Suindu De - Suppose we are executing

One extensively used feature of C++ that Java does not support is default function arguments. For example, the area() function shown in the following C++ program computes the area of a rectangle if called with two arguments, or the area of a square if called with one argument.

// C++ program that uses default arguments.
#include <iostream>
using namespace std;
/* Compute area of a rectangle. For a square,
pass only one argument.
*/
 

double area(double l, double w=0) {
if(w==0) return l * l;
else return l * w;
}
int main()
{
cout << "Area of 2.2 by 3.4 rectangle: ";
cout << area(2.2, 3.4) << endl;
cout << "Area of 3.0 by 3.0 square: ";
cout << area(3.0) << endl;
return 0;
}

As you can see, when area( ) is called with only one argument, the second defaults to zero. When this happens, the function simply uses the first argument for both the length and the width of the rectangle.

While convenient, default arguments are not, of course, necessary. In essence, default arguments are actually a shorthand form of function overloading in which one form of the function has a different number of parameters than the other. Thus, to convert a C++ function that contains one or more default arguments into Java, simply create overloaded methods that handle each case. In this example, you need a version of area() that takes two arguments and another that takes only one argument. Using this approach, here is the preceding program rewritten for Java:

// Java version of area program.
class Area {
// Compute area of a rectangle.
static double area(double l, double w) {
if(w==0) return l * l;
else return l * w;
}
// Overload area( ) for a square.
static double area(double l) {
return l * l;
}
public static void main(String args[]) {
System.out.println("Area of 2.2 by 3.4 rectangle: " +
area(2.2, 3.4));
System.out.println("Area of 3.0 by 3.0 square: " +
area(3.0));
}
}


C++ Home | All C++ Tutorials | Latest C++ Tutorials

Sponsored Links

If this tutorial doesn't answer your question, or you have a specific question, just ask an expert here. Post your question to get a direct answer.



Bookmark and Share

Comments(0)


Be the first one to add a comment

Your name (required):


Your email(required, will not be shown to the public):


Your sites URL (optional):


Your comments:



More Tutorials by Charles
arraycopy example in Java
Action listeners in JSF
Automatically Including Preludes and Codas in JSP
Using realloc() Function in C
Handling multiple buttons in HTML Form in Struts
Fopen and Getc implementation program in C
Pointers to Structures example program in C
Pointers vs. Multi-dimensional Arrays in C
getch and ungetch in C
Bitwise Operators in C
Variables and Arithmetic Expressions in C
Differences between JavaServer Faces technology and Struts
assert() example program in C++
'double buffering' Sample program in J2ME
Converting Default Function Arguments in C++ to Java

More Tutorials in C++
Two-Dimensional Array Manipulation in C++
Calculate average using Two-Dimensional Array in C++
Compute the square root of the sum of the squares of an array in C++
Matrix using nested for loops in C++
Sorting an array of Strings in C++
Calculating total based on the given quantity and price in C++
Compiling and Linking Multiple Source Files in C++
Enumerations in C++
Program to add two numbers in C++
Comments in C++
while loop in C++
for loop in C++
Programming errors a compiler will detect in C++
if in C++
Using the Built-in Arithmetic Types in C++

More Latest News
Most Viewed Articles (in C++ )
Difference between Procedural, Structured, and Object-Oriented Programming
Calculating total based on the given quantity and price in C++
The indirection operator (*) - dereference operator.
C++ Recursion function explained using Fibonacci series
Dot (.) vs Arrow (->) to access data members in C++
Public versus Private members in C++
Constructors and Destructors in C++
while (1) Loops in C++
Converting Pointers that Operate on Arrays in C++ to Java
Converting Default Function Arguments in C++ to Java
Operator Precedence in C++
strlen() sample program in C++
assert() example program in C++
cin.ignore() in C++
Lvalues and Rvalues in C++
Most Emailed Articles (in C++)
Multiple statements in for loops in C++
Getting User Input Using cin in C++
Difference between Procedural, Structured, and Object-Oriented Programming
Interface Versus Implementation in C++
Tutorial on Inline Implementation in C++
Looping with the keyword goto in C++
Converting C++ Abstract Classes into Java Interfaces
Call by reference in C++ Functions
Checking Prime Number in C++
if in C++
Multi-Line Literals in C++
Using cout in C++
How to use Enumerated constants in C++
Demonstration of Prefix and Postfix operators in C++
The if Statement in C++