1Ringkasan pertama struktur data
#1.
Parameter nilai
#include<iostream>
Using
namespace std;
int
Abc(int a, int b, int c)
{
return a+b+b*c+(a+b-c)/(a+b)+4;
}
void
main(void)
{
cout << Abc(2,3,4) << endl;
system(“PAUSE”);
}
mempertimbangkan fungsi cpp abc (program
1.1). fungsi ini menghitung
rumus yang a +
b * c untuk kasus ketika a,b dan c adalah bilangan
bulat,hasilnya juga bilangan bulat.
dalam program 1.1 a, b, dan c adalah parameter formal
abc fungsi. Setiap
tipe integer. jika fungsi dipanggil oleh pernyataan.
1.
2. Fungsi
Template
Program
1.2
#include<iostream>
Using
namespace std;
float
Abc(float a, float b, float c)
{
return a+b+b*c+(a+b-c)/(a+b)+4;
}
void
main(void)
{
cout << Abc(2,3,4) << endl;
system(“PAUSE”);
}
Program
1.3
#include<iostream>
Using
namespace std;
template<class
T>
T
Abc(T a, T b, T c)
{
return a+b+b*c+(a+b-c)/(a+b)+4;
}
void
main(void)
{
cout << Abc(2,3,4) << endl;
system(“PAUSE”);
}
program
1.1 dan 1.2 hanya berbeda dari tipe data dari parameter formal dan
nilai yang dikembalikan.kita dapat menulis kode generik dimana tipe
dataadalah variabel yang nilainya ditentukan oleh kode generik compiler.
ini ditulis dengan menggunakan pernyataan template seperti yang
ditunjukkan dalam program 1.3. dari
kode generik compiler dapat membuat program dengan menggantikan 1,1 in
untuk T dan program 1.2 dengan menggantikan mengambang T.
1. 3. Reference
Parameter
#include<iostream>
Using
namespace std;
template<class
T>
T
Abc(T& a, T& b, T& c)
{
return a+b+b*c+(a+b-c)/(a+b)+4;
}
void
main(void)
{
int a = 2, b = 3, c = 4;
cout << Abc(a,b,c) << endl;
system(“PAUSE”);
}
1.
4. Cost
Reference Parameter
#include<iostream>
Using
namespace std;
template<class
T>
T
Abc(const T& a, const T& b,
const T& c)
{
return a+b+b*c+(a+b-c)/(a+b)+4;
}
void
main(void)
{
cout << Abc(2,3,4) << endl;
system(“PAUSE”);
}
#include<iostream>
Using
namespace std;
template<class
Ta, class Tb, class Tc>
Ta
Abc(const Ta& a, const Tb& b, const Tc& c)
{
return a+b+b*c+(a+b-c)/(a+b)+4;
}
void
main(void)
{
cout << Abc(2,3,4) << endl;
system(“PAUSE”);
}
ALOKASI
MEMORI DINAMIS
Deklarasi
:
Int
* y;
Sebenarnya
:
y
=new int;
Variabel
y merujuk pointer ke integer dan *y merujuk ke integer.
*y
= 10;
ARRAY SATU DIMENSI DINAMIS
float
*x = new float [n];
Elemen
array diberi alamat dengan penulisan x[0], x[1], …, x[n-1].
PENANGANAN
PERKECUALIAN
Apa
yang terjadi dengan pernyataan :
float
*x = new float [n];
ketika
dieksekusi komputer dan ternyata memori tidak tersedia untuk n bilangan
floating point ?
float
*x;
try
{ x = new float [n]; }
catch
(xalloc) {
cerr
<< “Out of Memory” << endl;
exit(1); }
OPERATOR
DELETE
Pernyataan
:
delete y; // variabel biasa
delete [ ] x; // variabel array
akan
membebaskan memori yang dialokasikan oleh *y dan array satu dimensi x.
METHOD
(FUNCTION)
return-type
method-name(para1, para2, . . .) {
.
. .
body-of-the-method;
.
. .
}
Contoh
:
double
jumlah_kuadrat(int x, int y) {
return x*x + y*y;
}
METHOD
OVEROADING
} int max( int a, int b, int c )
} int max( int a, int b)
} int max( float a, float b, float
c)
} int max( float a, float b)