Converting Pointer Parameters in C++ to Java

By: Baski Emailed: 1645 times Printed: 2109 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

For the most part, it is quite easy to convert a C++ function that uses pointer parameters into its equivalent Java method. Since Java passes all objects by reference, sometimes the conversion simply requires the removal of C++'s pointer operators. For example, consider this C++ program that reverses the signs of a Coord object, which stores a pair of Cartesian coordinates. The function reverseSign( ) is passed a pointer to the Coord object that will be reversed. As you can see, C++'s *, &, and -> pointer operators are used to perform the operation.

// Reverse the signs of a coordinate - C++ version.
#include <iostream>
using namespace std;
class Coord {
public:
int x;
int y;
};

// Reverse the sign of the coordinates.
void reverseSign(Coord *ob) {
ob->x = -ob->x;
ob->y = -ob->y;
}
int main()
{
Coord ob;
ob.x = 10;
ob.y = 20;
cout << "Original values for ob: ";
cout << ob.x << ", " << ob.y << "\\n";
reverseSign(&ob);
cout << "Sign reversed values for ob: ";
cout << ob.x << ", " << ob.y << "\\n";
return 0;
}

This program can be recoded into the following Java version. As you can see, most of the conversion involves the deletion of the C++ pointer operators. Since Java passes objects by reference, changes to the parameter automatically affect the argument.

// Reverse the signs of a coordinate - Java version.
class Coord {
int x;
int y;
};

class DropPointers {
// Reverse the sign of the coordinates.
static void reverseCoord(Coord ob) {
ob.x = -ob.x;
ob.y = -ob.y;
}

public static void main(String args[]) {
Coord ob = new Coord();
ob.x = 10;
ob.y = 20;
System.out.println("Original values for ob: " +
ob.x + ", " + ob.y);
reverseCoord(ob);
System.out.println("Sign reversed values for ob: " +
ob.x + ", " + ob.y);
}
}

The output from both of these programs is the same and is shown here:

Original values for ob: 10, 20
Sign reversed values for ob: -10, -20


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(1)


1. View Comment

Nice one. I havn't thought of this before.

View Tutorial          By: Aniket Sawant at 2013-04-09 05:40:58

Your name (required):


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


Your sites URL (optional):


Your comments:



More Tutorials by Baski
Compiling multiple source files and specifying classpath using javac
The equals() Method example in Java
Default Values for Data Types in Java
JSP Example to connect to MS SQL database using Tomcat Connection Pool
<convertNumber> and <convertDateTime> in JSF
Enable/Disable Scripting Elements in JSP
Using calloc() Function in C
lseek() sample program in C
Arrays of Structures example program in C
The Basic Syntax Expression Language in JSP
Initialization of Pointer Arrays in C
Functions returning non-integer values in C
Increment and Decrement Operators in C
Getting Started with C
What is JSF (JavaServer Faces)?

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++ )
Dot (.) vs Arrow (->) to access data members in C++
Calculating total based on the given quantity and price in C++
C++ Recursion function explained using Fibonacci series
cin.ignore() in C++
Using cout.width() in C++
Nested Loops in C++
Constructors and Destructors in C++
Using Comments in a C++ Program
Calculate average using Two-Dimensional Array in C++
while (1) Loops in C++
do...while Loops in C++
qsort() sample program in C++
strcpy() and strncpy() sample program in C++
Function overloading in C++
Programming errors a compiler will detect in C++
Most Emailed Articles (in C++)
while (1) Loops in C++
Using Comments in a C++ Program
Returning values from a function in C++
Specifying default values to function parameters in C++
continue and break statements in C++
The indirection operator (*) - dereference operator.
How to use Enumerated constants in C++
while Loops in C++
Converting Pointer Parameters in C++ to Java
assert() Versus Exceptions in C++
Compute the square root of the sum of the squares of an array in C++
A Brief History of C++
C++ and Object-Oriented Programming
Using cout in C++
Advanced if Statements in C++