1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 | // 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.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | // 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
No comments:
Post a Comment