Skip to content

Instantly share code, notes, and snippets.

Embed
What would you like to do?
Bypassing encapsulation with pointers
#include <iostream>
using namespace std;
class Contact
{
private:
int mobile_number; // private variable
int home_number; // private variable
public:
Contact() // constructor
{
mobile_number = 12345678;
home_number = 87654321;
}
void print_numbers()
{
cout << "Mobile number: " << mobile_number;
cout << ", home number: " << home_number << endl;
}
};
int main()
{
Contact Tony;
int * mobile_number_is_here = (int *)&Tony;
cout << "Mobile number: " << (*mobile_number_is_here) << endl;
int * home_number_is_here = mobile_number_is_here + 1;
*home_number_is_here = 1;
cout << "Modified home number: " << (*home_number_is_here) << endl;
Tony.print_numbers();
return 0;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
You can’t perform that action at this time.