OOP TM 02

TM 02

  1. 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

  1. 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

  1. Level akses utility function  atau helper function suatu klas adalah

a. public           b. protected                 c. private                    d. inline

  1. 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

    1. satu konstruktor dan satu destructor
    2. lebih dari satu konstruktor dan satu destructor
    3. satu konstruktor dan lebih dari satu destructor
    4. 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”;

}

}

7. Uraikan apa yang kamu ketahui tentang constructor, user defined constructor, default constructor, parameterized constructor,  constructor initialization list, copy constructor dan destructor.

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?

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.

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);

            }

Jawaban essay

6.         OBYEK LAHIR.

SEKARANG x HIDUP.

OBYEK MATI.

ANTAR BLOK.

OBYEK LAHIR.

SEKARANG y HIDUP.

OBYEK MATI.

7. Constructor, yaitu sebuah method khusus untuk menciptakan objek dari kelas si    constructor.

-User defined constructor, yaitu constructor yang didefinisikan secara eksplisit oleh programmer, yang memiliki isi berbeda dari default constructor.

-Parameterized constructor, yaitu constructor yang memiliki parameter untuk          memberikan nilai awal pada objek yang ingin dibuat.

-Constructor initialization list, yaitu cara lain menginisialisasi nilai-nilai parameter awal dari sebuah objek suatu class(selain menggunakan assignment). Diletakkan di definisi fungsi constructor, sebelum body constructor tersebut.

-Copy constructor, yaitu sebuah function yang menginisialisasi sebuah objek          menggunakan objek lain yang berasal dari kelas yang sama.

-Destructor, yaitu fungsi untuk menghapus sebuah objek, dengan melepaskan         memori yang digunakan objek tersebut.

8. Default arguments yaitu nilai-nilai parameter yang akan digunakan untuk mengisi variabel-variabel awal dari sebuah objek jika nilai-nilai parameter tersebut tidak diberikan. Default value dapat merupakan constant, variabel global, atau function call.

9. Function overloading yaitu suatu kondisi dimana terdapat 2 atau lebih function berbeda yang bernama sama. 2 function dapat dikatakan overloading jika return type keduanya adalah sama tetapi function signature-nya berbeda. Function signature yaitu: jumlah parameter, tipe data parameter, dan urutan parameter.

10. A. Copy constructor akan dieksekusi jika: Sebuah objek disalin dengan cara inisialiasi deklarasi, objek digunakan sebagai parameter function menggunakan passed-by-value dan objek dijadikan nilai return oleh sebuah function.

B. 4 kali.

This entry was posted in Uncategorized. Bookmark the permalink.

Leave a Reply

Your email address will not be published. Required fields are marked *