Normal
0
false
false
false
EN-US
JA
X-NONE
/* Style Definitions */
table.MsoNormalTable
{mso-style-name:”Table Normal”;
mso-tstyle-rowband-size:0;
mso-tstyle-colband-size:0;
mso-style-noshow:yes;
mso-style-priority:99;
mso-style-qformat:yes;
mso-style-parent:””;
mso-padding-alt:0in 5.4pt 0in 5.4pt;
mso-para-margin:0in;
mso-para-margin-bottom:.0001pt;
mso-pagination:widow-orphan;
font-size:10.0pt;
font-family:”Times New Roman”,”serif”;
mso-fareast-language:EN-US;}
TM 02
- Copy constructor suatu klas dieksekusi jika obyek klas di-copy dengan mekanisme di bawah ini kecuali
a. direct assignment b. initialization
c. passing by value c. return by value
- Fungsi anggota yang otomatis di-create oleh kompilator meskipun ia tidak secara eksplisit ditulis oleh pemrogram dalam definisi klas adalah opsi-opsi di bawah ini kecuali
a. default constructor b. copy constructor
c. destructor d. overloaded constructor
- Level akses utility function atau helper function suatu klas adalah
a. public b. protected c. private d. inline
- Untuk class X, sintaks copy constructor adalah
a. X(& X) b. X(const X&)
c. X(const &X) d. X(X &)
5. C++ class mempunyai
- satu konstruktor dan satu destructor
- lebih dari satu konstruktor dan satu destructor
- satu konstruktor dan lebih dari satu destructor
- lebih dari satu konstruktor dan lebih dari satu destructor
6. Apa keluaran dari penggalan program berikut ini:
class Rational {
public:
Rational() { cout << “OBYEK LAHIR.\n”; }
~Rational() { cout << “OBYEK MATI. \n”; }
private:
int num, den;
};
main() {
{ Rational x;
cout << “SEKARANG x HIDUP.\n”;
}
cout << “ANTAR BLOK.\n”;
{ Rational y;
cout << “SEKARANG y HIDUP.\n”;
}
}
Jawab :
OBYEK LAHIR.
SEKARANG x HIDUP.
OBYEK MATI.
ANTAR BLOK.
OBYEK LAHIR.
SEKARANG y HIDUP.
OBYEK MATI.
7. Uraikan apa yang kamu ketahui tentang constructor, user defined constructor, default constructor, parameterized constructor, constructor initialization list, copy constructor dan destructor.
Jawab :
Constructor adalah fungsi yang dijalankan saat pertama kali objek dibuat.
USER defined constructor adalah constructor yang dibuat sendiri oleh user secara eksplisit yang berbeda dengan default constructor yang disediakan oleh program.
Default constructor adalah constructor yang memang sudah disediakan oleh program tersebut, dan akan dijalakan secara otomatis apabila user tidak membuat constructor secara eksplisit terlebih dahulu.
Parameterized constructor adalah constructor yang diberikan parameter untuk menentukan nilai awal dari constructor.
Constructor initialization list adalah cara lain untuk mengisi nilai parameter awal sebuah constructor, yaitu dengan cara meletakkan definisi fungsi constructor sebelum bagian bodynya.
Copy constructor adalah function untuk mengambil atribut dari constructor lain secara sama persis dan disalin kedalam constructor yang baru dibuat.
Destructor adalah fungsi yang berjalan saat tugas dari sebuah objek selesai, dengan kata lain, objek tersebut akan dibuang dan melepaskan kembali memory yang digunakan sebelumnya oleh objek tersebut.
8. Uraikan apa yang kamu ketahui tentang default arguments di C++. Sebutkan apa saja yang dapat digunakan sebagai devalut value. Mengapa nilai constant tidak dapat digunakan sebagai default value untuk reference variable?
Jawab :
Default arguments adalah nilai parameter yang digunakan untuk mengisi nilai dari variable awal sebuah objek jika nilai tersebut tidak diinisialisasi oleh user.
Default value bisa berupa constant, global variable, dan function call.
9. Apa yang dimaksud dengan function overloading? Kriteria apa yang digunakan untuk menyatakan bahwa dua fungsi dengan nama yang sama adalah berbeda satu sama lain.
Jawab :
Function overloading adalah keadaan dimana ada dua atau lebih fungsi berbeda dengan nama yang sama. Tetapi ada perbedaan dalan function signaturenya. Function signature adalah meliputi, jumlah parameter fungsi, tipe data parameter, dan urutan tampilnya parameter.
10. Banyak penulis buku menyatakan bahwa untuk class X paling sedikit mempunyai satu constructor yaitu default constructor dengan prototype X(). Tetapi John Hubbard dalam bukunya Programming with C++ menyatakan bahwa setiap class X paling sedikit mempunyai dua constructor yaitu default X() dan copy constructor yang prototipe sintaksnya adalah X (const X & ), fungsi anggota dengan satu parameter dan pass by constant reference.
Tugas Anda:
a. Kapan copy constructor dieksekusi?
b. Untuk penggalan kode berikut berapa kali copy constructor dieksekusi?
class Rational {
public : Rational(int n, int d) : num(n), den (d) { }
Rational(const Rational & r) : num(r.num), den(r.den)
{ cout << “COPY CONSTRUCTOR CALLED\n”;}
private: int num, den;
};
Rational f(Rational r) {
Rational s = r;
return s;
}
main() {
Rational(22,7);
Rational y(x);
f(y);
}
Jawab :
Copy constructor akan dijalankan saat sebuah objek disalin dengan cara inisialisasi deklarasi, sebuah objek digunakan sebagai fungsi parameter dengan pass by value, objek dijadikan nilai return dari fungsi.
Dijalankan sebanyak 4 kali.
I AM PROUD AS A BINUSIAN
Recent Comments