Menu
CoddyTech

Ulasan: Greeter

Termasuk bagian Pemrograman Berorientasi Objek dalam perjalanan C di Coddy. Pelajaran 43 dari 61.

challenge icon

Tantangan

Mudah

Mari buat sistem Greeter yang menunjukkan polimorfisme melalui pointer fungsi: tipe struct yang sama menghasilkan output berbeda, bergantung pada fungsi sapaan yang ditetapkan.

Kamu akan menyusun kodemu dalam tiga file:

  • greeter.h: Definisikan antarmuka greeter di sini. Buat tipe pointer fungsi bernama GreetFunc yang menerima const char* (nama yang akan disapa) dan tidak mengembalikan apa pun. Lalu, definisikan struct Greeter yang berisi language (sebuah const char*) dan pointer fungsi greet bertipe GreetFunc.
  • greeter.c: Implementasikan fungsi sapaan yang mewakili berbagai bahasa:
    • greet_english: mencetak Hello, name!
    • greet_spanish: mencetak Hola, name!
  • main.c: Satukan semuanya di sini. Buat dua instance Greeter, satu untuk bahasa Inggris dan satu untuk bahasa Spanyol, masing-masing ditetapkan ke fungsi sapaan yang sesuai. Baca sebuah nama sebagai input, lalu panggil fungsi greet pada kedua greeter untuk menunjukkan perilaku polimorfik.

Programmu akan menerima satu input: sebuah nama yang akan disapa.

Buat greeter bahasa Inggris dengan bahasa yang ditetapkan ke English dan greeter bahasa Spanyol dengan bahasa yang ditetapkan ke Spanish. Untuk setiap greeter, cetak bahasanya diikuti titik dua dan spasi, lalu panggil fungsi greet dengan nama input.

Contoh output saat inputnya adalah Maria:

English: Hello, Maria!
Spanish: Hola, Maria!

Contoh output saat inputnya adalah Carlos:

English: Hello, Carlos!
Spanish: Hola, Carlos!

Kedua greeter memiliki tipe Greeter yang sama, tetapi menghasilkan sapaan yang berbeda karena masing-masing memiliki fungsi berbeda yang ditetapkan ke member greet. Ingat untuk menggunakan include guard di file header-mu.

Coba sendiri

#include <stdio.h>
#include <string.h>
#include "greeter.h"

int main() {
    // Baca input nama
    char name[100];
    scanf("%s", name);
    
    // TODO: Buat penyapa bahasa Inggris
    // - Atur language ke "English"
    // - Atur greet ke fungsi greet_english
    
    
    // TODO: Buat penyapa bahasa Spanyol
    // - Atur language ke "Spanish"
    // - Atur greet ke fungsi greet_spanish
    
    
    // TODO: Untuk setiap penyapa:
    // 1. Cetak language diikuti oleh ": "
    // 2. Panggil fungsi greet dengan name
    
    
    return 0;
}

Semua pelajaran di Pemrograman Berorientasi Objek

Latihan sendiri: Compiler C online