59 lines
976 B
C++
59 lines
976 B
C++
|
Accessing Private Data Members in C++. This is a flaw in the language
|
||
|
|
||
|
#include <iostream.h>
|
||
|
#include <string.h>
|
||
|
#include <conio.h>
|
||
|
|
||
|
class bestcoder
|
||
|
{
|
||
|
private:
|
||
|
|
||
|
char name[40];
|
||
|
char grade;
|
||
|
int age;
|
||
|
|
||
|
public:
|
||
|
|
||
|
bestcoder(char* nam="Some Dude",char gr='A',int saal=25)
|
||
|
{
|
||
|
strcpy(name,nam);
|
||
|
grade=gr;
|
||
|
age=saal;
|
||
|
}
|
||
|
|
||
|
friend ostream& operator <<(ostream& s,bestcoder b);
|
||
|
};
|
||
|
|
||
|
ostream& operator <<(ostream& s,bestcoder b)
|
||
|
{
|
||
|
s<<"Best Coder :"<<b.name<<endl
|
||
|
<<"His Rating :"<<b.grade<<endl
|
||
|
<<"Current Age :"<<b.age<<"
|
||
|
|
||
|
";
|
||
|
return s;
|
||
|
}
|
||
|
|
||
|
struct hackit
|
||
|
{
|
||
|
char name[40];
|
||
|
char grade;
|
||
|
char age;
|
||
|
};
|
||
|
|
||
|
void main()
|
||
|
{
|
||
|
bestcoder bc;
|
||
|
cout<<bc;
|
||
|
void* ptr=&bc;
|
||
|
struct hackit* bettercoder=(hackit*)ptr;
|
||
|
bettercoder->grade='F';
|
||
|
bettercoder->age=56;
|
||
|
cout<<bc;
|
||
|
strcpy(bettercoder->name,"xxx");
|
||
|
bettercoder->age=14;
|
||
|
bettercoder->grade='A';
|
||
|
cout<<bc;
|
||
|
getch();
|
||
|
}
|