Anda di halaman 1dari 6

1. Buatlah program seperti di bawah ini!

manusia.h

#ifndef MANUSIA_H
#define MANUSIA_H
class Manusia {
public:
virtual void Hello();
};
class Pelajar :
public Manusia {
public:
void Hello();
};
manusia.cpp
class Pegawai :
#include
public "Manusia.h"
Manusia {
#include <iostream.h>
public:
void Manusia::Hello()
void
#include Hello();
"Manusia.h"
{#include <iostream.h>
};
#includecout<<"Hallo
#endif <stdlib.h> ..."<< endl;
} main()
int
void
{ Pelajar::Hello()
{Manusia* m;
cout<<"Hallo, Saya Pelajar ..."<< endl;
int pilihan;
} {
do
void Pegawai::Hello()
cout<<"1: Manusia, 2: Pelajar, 3: Pegawai >> ";
MPoli.cpp
{ cin >> pilihan;
} cout<<"Hallo, Saya Pegawai ...."<<endl;
}while ( pilihan < 1 || pilihan > 3 );
switch ( pilihan )
{
case 1: m = new Manusia; break;
case 2: m = new Pelajar; break;
case 3: m = new Pegawai; break;
}
m->Hello();
delete m;
return 0;
}
2. Buatlah program seperti di bawah ini!
Bentuk2D.h

#ifndef BENTUK2D_H
#define BENTUK2D_H
class Bentuk2D {
public:

virtual float cariLuas()=0; };


class Segiempat : public Bentuk2D
{
protected:
float panjang, lebar;
public:
Segiempat(float, float);
float cariLuas();
};
class Lingkaran : public Bentuk2D
{
private:
float jejari;
public:
Lingkaran (float);
float cariLuas();
};
class Segitiga : public Bentuk2D
{
private:
float alas, tinggi;
public:
Segitiga(float, float);
float cariLuas();
};
#endif
Bentuk2D.cpp

#include <iostream.h>
#include "Bentuk2D.h"

Segiempat::Segiempat(float p, float l)
{
panjang = p;
lebar = l;
}

float Segiempat:: cariLuas()


{
cout<< "Luas segiempat : " << panjang*lebar << endl;
return 0;
}
Segitiga::Segitiga(float a, float t)
{
alas = a;
tinggi = t;
}

float Segitiga:: cariLuas()


{#include "Bentuk2D.h"
#includecout << "Luas Segitiga : " << 0.5 * alas * tinggi << endl;
<iostream.h>
return 0;
#include <stdlib.h>
}
int main() {
Bentuk2D* b2d;(float r)
Lingkaran::Lingkaran
{ bool loop = true;
jejari = r;
int pilihan;
}do {

cout <<"1: Segiempat, 2: Lingkaran, 3: Segitiga >> ";


float Lingkaran::cariLuas()
cin >> pilihan;
MAbstrak.cpp
{
} while (cout
pilihan
<< <"Luas
1 || pilihan > 3 );: " << 3.14*jejari*jejari << endl;
lingkaran
switch (return
pilihan0;) {
}case 1: b2d = new Segiempat(4.0, 5.0); break;

case 2: b2d = new Lingkaran (7.0); break;


case 3: b2d = new Segitiga (2.0, 10.0); break;
case 4: loop = false;
}
b2d->cariLuas();
delete b2d;
return 0;
}
3. Buatlah program seperti di bawah ini!
shape.h

#ifndef SHAPE_H
#define SHAPE_H

class Shape {
public:

virtual double area() const { return 0.0; }


virtual double volume() const { return 0.0; }
virtualPOINT1_H
#ifndef void print() const = 0;
};
#define
virtual POINT1_H
void printShapeName() const = 0;

point1.h
#include
#endif <iostream.h>
#include "shape.h"

class Point : public Shape


{ public:

Point( int = 0, int = 0 );


void setPoint( int, int );

int getX() const { return x; }


int getY() const { return y; }

virtual void printShapeName() const { cout<<"Point: "; }


virtual void print() const;

private:
#include
int x, y; }; "point1.h"
point1.cpp
Point::Point(int a, int b) {setPoint(a, b); }
#endif
void Point::setPoint(int a, int b)
{
x=a;
y=b;
}
circle1.h
void Point::print() const
#ifndef CIRCLE1_H
{ cout <<"["<<x<<","<<y<<"]";}
#define CIRCLE1_H
#include "point1.h"

class Circle : public Point


{ public:
Circle( double r = 0.0, int x = 0, int y = 0 );

void setRadius( double ); double getRadius() const;


virtual double area() const;

virtual void printShapeName() const { cout << "Circle: "; }


circle1.cpp
virtual void print() const;

#include <iostream>
private: double radius; };
#include "circle1.h"

#endif
Circle::Circle( double r, int a, int b ) :
void Circle::setRadius( double r ) { radius = r > 0 ? r : 0; }
Point( a, b ) { setRadius( r ); }
double Circle::getRadius() const { return radius; }
double Circle::area() const

{ return 3.14159 * radius * radius; }

void Circle::print() const


{

Point::print();
cout<< "; Radius = " << radius;
}
Main.cpp

#include <iostream>
#include <stdlib.h>

#include "shape.h"
#include "point1.h"
#include "circle1.h"

void virtualViaPointer( const Shape * );

int main()
{
Point point(
Shape 7, 11 ); // create
*arrayOfShapes[ 2]; //aarray
Pointof base-class pointers
Circle circle( 3.5, 22, 8 ); // create a Circle
point.printShapeName();//
arrayOfShapes[ static binding
0 ] = &point;
point.print();// static
arrayOfShapes[ 1 ] =binding
&circle;
cout<< '\n';
circle.printShapeName();//
cout<< "Virtual function callsstatic
madebinding
off "
circle.print();//
<< static binding
"base-class pointers\n";
cout<< '\n';

for ( int i = 0; i < 2; i++ )


virtualViaPointer( arrayOfShapes[ i ] );

return 0;
}

void virtualViaPointer( const Shape *baseClassPtr )

baseClassPtr->printShapeName();
baseClassPtr->print();

cout<< "\nArea = " << baseClassPtr->area()


<< "\nVolume = " << baseClassPtr->volume() << "\n\n";

Anda mungkin juga menyukai