C++ Class Definition Vs Declaration

4 min read Jul 01, 2024
C++ Class Definition Vs Declaration

C++ Class Definition vs Declaration

Dalam pemrograman C++, kita seringkali menggunakan istilah "definisi kelas" dan "deklarasi kelas". Meskipun keduanya berkaitan erat dengan kelas, keduanya memiliki arti yang berbeda. Penting untuk memahami perbedaan keduanya agar dapat menulis program C++ yang benar dan efektif.

Deklarasi Kelas (Class Declaration)

Deklarasi kelas hanya menyatakan keberadaan kelas dan menentukan antarmuka kelas tersebut. Ini berarti deklarasi kelas mendefinisikan nama kelas, atribut (variabel anggota), dan metode (fungsi anggota). Deklarasi kelas tidak menentukan implementasi dari metode-metode tersebut.

Berikut contoh deklarasi kelas sederhana:

class Dog {
public:
  // Deklarasi metode (tanpa implementasi)
  void bark();
  void wagTail();

private:
  // Deklarasi atribut
  std::string name;
  int age;
};

Deklarasi kelas ini memberitahu kompilator bahwa terdapat sebuah kelas bernama Dog dengan metode bark dan wagTail dan atribut name dan age. Deklarasi ini tidak memberikan detail tentang bagaimana metode-metode tersebut diimplementasikan.

Definisi Kelas (Class Definition)

Definisi kelas mendefinisikan implementasi dari metode-metode yang dideklarasikan dalam deklarasi kelas. Definisi kelas menyediakan kode sumber untuk metode-metode tersebut.

Berikut contoh definisi kelas untuk kelas Dog di atas:

void Dog::bark() {
  std::cout << "Woof!" << std::endl;
}

void Dog::wagTail() {
  std::cout << "The dog is wagging its tail!" << std::endl;
}

Kode di atas memberikan implementasi untuk metode bark dan wagTail dari kelas Dog.

Perbedaan Kunci

Perbedaan utama antara deklarasi dan definisi kelas adalah:

  • Deklarasi kelas: Menyatakan keberadaan kelas dan antarmuka.
  • Definisi kelas: Mendefinisikan implementasi dari metode-metode.

Penggunaan Deklarasi dan Definisi

Deklarasi kelas biasanya diletakkan di dalam header file (.h atau .hpp), sedangkan definisi kelas biasanya diletakkan di dalam file sumber (.cpp). Ini memungkinkan pemisahan antara antarmuka dan implementasi kelas.

Contoh

Berikut contoh lengkap dari deklarasi dan definisi kelas:

Dog.h:

class Dog {
public:
  void bark();
  void wagTail();

private:
  std::string name;
  int age;
};

Dog.cpp:

#include "Dog.h"

void Dog::bark() {
  std::cout << "Woof!" << std::endl;
}

void Dog::wagTail() {
  std::cout << "The dog is wagging its tail!" << std::endl;
}

Dengan menggunakan pemisahan antara deklarasi dan definisi, kode menjadi lebih terorganisir dan mudah dipahami.

Kesimpulan

Memahami perbedaan antara deklarasi dan definisi kelas sangat penting dalam pemrograman C++. Deklarasi kelas menentukan antarmuka, sedangkan definisi kelas menyediakan implementasi dari metode-metode. Dengan menggunakan pemisahan ini, kode menjadi lebih mudah dibaca, dikelola, dan dipertahankan.

Featured Posts