1.
Parameter nilai
#include<iostream.h>
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;
}
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.
dalam program 1.1 a, b, dan c adalah parameter formal abc fungsi. Setiap tipe integer. jika fungsi dipanggil oleh pernyataan.
2.
Fungsi
Template
Program
1.2
#include<iostream.h>
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;
}
misalkan kita ingin menulis fungsi lain untuk menghitung ekspresi yang sama yang dihitung oleh program 1.1. Namun, ini waktu, b, dan c adalah tipe float, dan hasilnya juga dari jenis ini. Program 1.2 memberikan kode. Program 1.1 dan 1.2 hanya berbeda dalam tipe data dari parameter formal dan nilai yang dikembalikan.
Daripada menulis versi baru dari kode untuk setiap jenis data yang mungkin dari parameter formal, kita dapat menulis kode generik di mana tipe data adalah variabel yang nilainya akan ditentukan oleh kode generik compiler.This ditulis 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. Bahkan, compiler dapat
Daripada menulis versi baru dari kode untuk setiap jenis data yang mungkin dari parameter formal, kita dapat menulis kode generik di mana tipe data adalah variabel yang nilainya akan ditentukan oleh kode generik compiler.This ditulis 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. Bahkan, compiler dapat
Program
1.3
#include<iostream.h>
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;
}
3.
Reference
Parameter
#include<iostream.h>
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;
}
4.
Cost
Reference Parameter
#include<iostream.h>
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;
}
#include<iostream.h>
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;
}
ALOKASI
MEMORI DINAMIS
Deklarasi
:
Int
* y;
Sebenarnya
:
y
=new int;
Variabel
y merujuk pointer ke integer dan *y merujuk ke integer.
*y
= 10;
kita bisa menggabungkan tiga langkah menyatakan y, mengalokasikan
memori, dan memberikan
nilai pada * y-ke sejumlah kecil langkah
seperti yang ditunjukkan dalam contoh berikut:
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)
Tidak ada komentar:
Posting Komentar