class Titik{
/*kelas yang digunakan untuk mengimplementasikan sebuah tipe titik*/
private:
int x; /*koordinat x*/
int y; /*koordinat y*/
public:
Titik(){
/*konstruktor*/
x = 0;
y = 0;
}
Titik(int xp, int yp){
/*konstruktor*/
x = xp;
y = yp;
}
void setX(int xp){
/*mengeset nilai koordinat x*/
x = xp;
}
int getX(){
/*mengembalikan nilai koordinat x*/
return x;
}
void setY(int yp){
/*mengeset nilai koordinat y*/
y = yp;
}
int getY(){
/*mengembalikan nilai koordinat y*/
return y;
}
virtual void printTitik(){
/*menampilkan nilai koordinat titik*/
printf("nilai X : %d\n", getX());
printf("nilai Y : %d\n", getY());
}
~Titik(){
/*destruktor*/
}
};
class Titik3D : public Titik{
/*kelas turunan kelas Titik*/
private:
int z; /*koordinat z*/
public:
Titik3D(){
/*konstruktor*/
z = 0;
}
Titik3D(int xp, int yp, int zp){
/*konstruktor*/
setX(xp);
setY(yp);
z = zp;
}
void setZ(int zp){
/*mengeset nilai koordinat z*/
z = zp;
}
int getZ(){
/*mengembalikan nilai koordinat z*/
return z;
}
virtual void printTitik(){
/*menampilkan nilai koordinat titik*/
printf("nilai X : %d\n", getX());
printf("nilai Y : %d\n", getY());
printf("nilai Z : %d\n", getZ());
}
};
/*fungsi main untuk mengetes kelas Titik dan kelas Titik3D */
int main(){
Titik3D t(0, 0, 7);
t.setX(28);
t.setY(1);
t.printTitik();
Titik *t1;
printf("====================\n");
t1 = &t;
t1->printTitik();
return 0;
}