- Beranda
- Komunitas
- Tech
- Programmer Forum
POLIMORFISME DALAM PROGRAM C++


TS
BillKaulizt
POLIMORFISME DALAM PROGRAM C++
gan bantu betulin program ini please,dibaikin gan & sambil dijelasin juga ane bener gak nngerti error programnya
#indef MANUSIA_H
#define MANUSIA_H
class Manusia {
public:
virtual void Hello () ;
};
class Pelajar : public Manusia {
public:
void Hello ();
};
class Pegawai : public Manusia {
public:
void Hello ();
};
#endif
Manusia.cpp
#include “Manusia.h”
#include<iostream.h>
void Manusia::Hello () {
cout<<”Hello...”<<endl;
}
void Pelajar::Hello() {
cout<<”Hallo,Saya Pelajar...”<<end;
}
void Pegawai::Hello () {
cout<<”Hallo,Saya Pegawai ...”<<endl:
}
Mpoli.cpp
#include “Manusia.h”
#include<iostream.h>
#include<stdlib.h>
int main ( ) {
Manusia*m;
int pilihan;
do {
cout<<”1:Manusia, 2:Pelajar,3:Pegawai >>”;
cin>>pilihan;
} while { pilihan <<1 || pilihan >3};
swicth (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;
}
#ifndef SHAPE_H
#ifndef SHAPE_H
class Shape {
public:
virtual double area() const { return 0.0;}
virtual double volume () const { return 0.0;}
virtual void printlnShapeName() const =0;
virtual void print() const = 0;
};
#endif
point1.h
#ifndef POINT1_H
#define PONT1_H
#include <iostream>
#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 { returny;}
virtual void printShapeName () const { cout<<”Point: “;}
virtual void print () const ;
private :
intx, y;
};
#endif
point1.cpp
#include”point1.h”
Point::Point(int a, int b,) { setPoint (a,b); }
void Point::setPoint(int a, int b)
{
x=a;
y=b;
}
void Point:
rint() const
{ cout<<’[‘<<x<<” “ <<y<<’]’;}
circle1.h
#ifdenf CIRCLE1_H
#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 () cosnt;
virtual double area () const;
virtual void printShapeName () const { cout <<”Circle:’;}
virtual void print () const ;
private :
double radius;
};
#endif
circle1.cpp
#include <iostream>
#include”circle1.h”
Circle ::Circle ( double r, int a, int b)
:Point (a,b)
{setRadius (r) ;}
void Circle::setRadius(double r) { radius =r>0? r : 0;}
double Circle::getRadius ( ) const { return radius;}
double Circle::area () const
{return 3.14159*radius*radius;}
void Circle:
rint() const
{
Point:
rint ( );
cout<<”;Radius =”<<radius ;
}
main.cpp
#include<iostream>
#include<stdlib.h>
#include “shape.h”
#include “point11.h”
#include “circle1.h”
#include “cylindr1.h”
void virtualViaPointer (cons Shape *);
int main ()
{
Point Point ( 7,11); //create a Point
Circle Circle(3.5, 22, 8); //create a Circle
point.printShapeName (); //static binding
point.print (); //static binding
cout<<’\n’;
Shape *arrayOfShapes[ 2] ; // array of base-class pointers
arrayOfShapes [ 0 ] = &point;
arrayOfShapes[ 1 ]=&circle;
cout<< “ Virtual fungction calls made off”
<< “base-class pointers\n”;for (int i=0;i < 2 ; i++)
virtualViaPointer (arrayOfSnapes [ i ]);
return 0;
}
void virtualViaPointer ( const Shape *baseClassPtr)
{
baseClassPtr->printShapeName ();
baseClassPtr->print ( );
cout<< “\nArea= “<< baceClassPtr->area ()
<< “\nVolume= “<<baseClassPtr->volume()<< “\n\n”;
}
Quote:
#indef MANUSIA_H
#define MANUSIA_H
class Manusia {
public:
virtual void Hello () ;
};
class Pelajar : public Manusia {
public:
void Hello ();
};
class Pegawai : public Manusia {
public:
void Hello ();
};
#endif
Manusia.cpp
#include “Manusia.h”
#include<iostream.h>
void Manusia::Hello () {
cout<<”Hello...”<<endl;
}
void Pelajar::Hello() {
cout<<”Hallo,Saya Pelajar...”<<end;
}
void Pegawai::Hello () {
cout<<”Hallo,Saya Pegawai ...”<<endl:
}
Mpoli.cpp
#include “Manusia.h”
#include<iostream.h>
#include<stdlib.h>
int main ( ) {
Manusia*m;
int pilihan;
do {
cout<<”1:Manusia, 2:Pelajar,3:Pegawai >>”;
cin>>pilihan;
} while { pilihan <<1 || pilihan >3};
swicth (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;
}
Quote:
Bentuk2D.h
#ifndef BENTUK2D_H
#define BENTUK2D_H
class Bentuk2D {
public :
virtua float cariLuas () = 0;
};
class Segiempat : public Bentuk2D {
protected:
flaoat panjan,lebar;
public:
Segiempat(float,float);
float cariLuas () ;
};
class Lingkaran : public Bentuk2D {
private:
float jejari:
public:
Lingkaran (float );
float cariLuas() ;
};
class Segitiga:
ublic 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 1)
{
panjang =p;
lebar =1;
}
float Segiempat::cariLuas()
{
cout<<”Luas segiempat : “<<panjang*lebar<<endl;
}
Lingkaran::Lingkaran(float r)
{
jejari = r:
}
float Lingkaran::cariLuas ()
{
cout<<”Luas lingkaran :<<3.4*jejari*jejari<<endl;
}
Segitiga::Segitiga(float a,float t)
{
alas = a;
tinggi=t;
}
float Segitiga::cariLuas()
{
cout<<”Luas Segitiga: “<<0.5 * alas* tinggi*<<endl;
}
MAbsrak.cpp
#include”Bentuk2D.h”
#include<iostream.h>
#include<stdlib.h>
int main () {
Bentuk2D*b2d;
bool loop =true ;
int pilihan;
do {
cout<<”1:Segiempat,2:Lingakaranm,3:Segitiga >>”;
cin>>pilihan;
j while (pilihan <1 | |pilihan>3 );
switch (pilihan) {
case 1:b2d=new Segiempat (4.0,5.0) ; break;
case 2:b2d=new Lingkaran (4.0); break;
case 3:d2d=new Segitiga (2.0,10.0);break;
case 4: loop=false;
}
b2d->cariLuas ();
delete b2d;
return 0;
}
#ifndef BENTUK2D_H
#define BENTUK2D_H
class Bentuk2D {
public :
virtua float cariLuas () = 0;
};
class Segiempat : public Bentuk2D {
protected:
flaoat panjan,lebar;
public:
Segiempat(float,float);
float cariLuas () ;
};
class Lingkaran : public Bentuk2D {
private:
float jejari:
public:
Lingkaran (float );
float cariLuas() ;
};
class Segitiga:

private:
float alas,tinggi ;
public:
Segitiga (float,float );
float cariLuas ();
};
#endif
Bentuk2D.cpp
#include<iostream.h>
#include”Bentuk2D.h”
Segiempat::Segiempat(float p,float 1)
{
panjang =p;
lebar =1;
}
float Segiempat::cariLuas()
{
cout<<”Luas segiempat : “<<panjang*lebar<<endl;
}
Lingkaran::Lingkaran(float r)
{
jejari = r:
}
float Lingkaran::cariLuas ()
{
cout<<”Luas lingkaran :<<3.4*jejari*jejari<<endl;
}
Segitiga::Segitiga(float a,float t)
{
alas = a;
tinggi=t;
}
float Segitiga::cariLuas()
{
cout<<”Luas Segitiga: “<<0.5 * alas* tinggi*<<endl;
}
MAbsrak.cpp
#include”Bentuk2D.h”
#include<iostream.h>
#include<stdlib.h>
int main () {
Bentuk2D*b2d;
bool loop =true ;
int pilihan;
do {
cout<<”1:Segiempat,2:Lingakaranm,3:Segitiga >>”;
cin>>pilihan;
j while (pilihan <1 | |pilihan>3 );
switch (pilihan) {
case 1:b2d=new Segiempat (4.0,5.0) ; break;
case 2:b2d=new Lingkaran (4.0); break;
case 3:d2d=new Segitiga (2.0,10.0);break;
case 4: loop=false;
}
b2d->cariLuas ();
delete b2d;
return 0;
}
Quote:
#ifndef SHAPE_H
#ifndef SHAPE_H
class Shape {
public:
virtual double area() const { return 0.0;}
virtual double volume () const { return 0.0;}
virtual void printlnShapeName() const =0;
virtual void print() const = 0;
};
#endif
point1.h
#ifndef POINT1_H
#define PONT1_H
#include <iostream>
#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 { returny;}
virtual void printShapeName () const { cout<<”Point: “;}
virtual void print () const ;
private :
intx, y;
};
#endif
point1.cpp
#include”point1.h”
Point::Point(int a, int b,) { setPoint (a,b); }
void Point::setPoint(int a, int b)
{
x=a;
y=b;
}
void Point:

{ cout<<’[‘<<x<<” “ <<y<<’]’;}
circle1.h
#ifdenf CIRCLE1_H
#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 () cosnt;
virtual double area () const;
virtual void printShapeName () const { cout <<”Circle:’;}
virtual void print () const ;
private :
double radius;
};
#endif
circle1.cpp
#include <iostream>
#include”circle1.h”
Circle ::Circle ( double r, int a, int b)
:Point (a,b)
{setRadius (r) ;}
void Circle::setRadius(double r) { radius =r>0? r : 0;}
double Circle::getRadius ( ) const { return radius;}
double Circle::area () const
{return 3.14159*radius*radius;}
void Circle:

{
Point:

cout<<”;Radius =”<<radius ;
}
main.cpp
#include<iostream>
#include<stdlib.h>
#include “shape.h”
#include “point11.h”
#include “circle1.h”
#include “cylindr1.h”
void virtualViaPointer (cons Shape *);
int main ()
{
Point Point ( 7,11); //create a Point
Circle Circle(3.5, 22, 8); //create a Circle
point.printShapeName (); //static binding
point.print (); //static binding
cout<<’\n’;
Shape *arrayOfShapes[ 2] ; // array of base-class pointers
arrayOfShapes [ 0 ] = &point;
arrayOfShapes[ 1 ]=&circle;
cout<< “ Virtual fungction calls made off”
<< “base-class pointers\n”;for (int i=0;i < 2 ; i++)
virtualViaPointer (arrayOfSnapes [ i ]);
return 0;
}
void virtualViaPointer ( const Shape *baseClassPtr)
{
baseClassPtr->printShapeName ();
baseClassPtr->print ( );
cout<< “\nArea= “<< baceClassPtr->area ()
<< “\nVolume= “<<baseClassPtr->volume()<< “\n\n”;
}
Diubah oleh BillKaulizt 28-04-2013 08:00
0
2.2K
Kutip
1
Balasan


Komentar yang asik ya
Urutan
Terbaru
Terlama


Komentar yang asik ya
Komunitas Pilihan