Özet: Greeter
Coddy'nin C Journey'sinin Nesne Yönelimli Programlama bölümünün bir parçası. Ders 43 / 61.
Görev
KolayFonksiyon işaretçileri aracılığıyla polimorfizmi gösteren bir Greeter sistemi oluşturalım: hangi selamlama fonksiyonunun bağlandığına bağlı olarak farklı çıktılar üreten aynı struct türü.
Kodunuzu üç dosyaya ayıracaksınız:
greeter.h: Greeter arayüzünüzü burada tanımlayın. BirGreetFunc(selamlanacak ad) alan ve hiçbir şey döndürmeyenconst char*adlı bir fonksiyon işaretçisi türü oluşturun. Ardından birGreeter(language) veconst char*türünde birgreetfonksiyon işaretçisi içeren birGreetFuncstruct'ı tanımlayın.greeter.c: Farklı dilleri temsil eden selamlama fonksiyonlarını uygulayın:greet_english:Hello, name!yazdırırgreet_spanish:Hola, name!yazdırır
main.c: Her şeyi burada bir araya getirin. Biri İngilizce, diğeri İspanyolca için olmak üzere ikiGreeterörneği oluşturun ve her birini ilgili selamlama fonksiyonuna bağlayın. Bir adı girdi olarak okuyun, ardından polimorfik davranışı göstermek için her iki greeter üzerindegreetfonksiyonunu çağırın.
Programınız tek bir girdi alacaktır: selamlanacak bir ad.
English olarak ayarlanmış bir language değerine sahip bir İngilizce greeter ve Spanish olarak ayarlanmış bir language değerine sahip bir İspanyolca greeter oluşturun. Her greeter için, language değerini, ardından iki nokta üst üste ve bir boşluk yazdırın; sonra girdi adını kullanarak greet fonksiyonunu çağırın.
Girdi Maria olduğundaki örnek çıktı:
English: Hello, Maria!
Spanish: Hola, Maria!Girdi Carlos olduğundaki örnek çıktı:
English: Hello, Carlos!
Spanish: Hola, Carlos!Her iki greeter da aynı Greeter türündedir, ancak her birinin greet üyesine farklı bir fonksiyon atandığı için farklı selamlamalar üretirler. Header dosyanızda include guard kullanmayı unutmayın.
Kendin dene
#include <stdio.h>
#include <string.h>
#include "greeter.h"
int main() {
// İsim girdisini oku
char name[100];
scanf("%s", name);
// TODO: Bir İngilizce selamlayıcı oluştur
// - language'i "English" olarak ayarla
// - greet'i greet_english fonksiyonuna ayarla
// TODO: Bir İspanyolca selamlayıcı oluştur
// - language'i "Spanish" olarak ayarla
// - greet'i greet_spanish fonksiyonuna ayarla
// TODO: Her selamlayıcı için:
// 1. Dili yazdır, ardından ": "
// 2. greet fonksiyonunu isimle çağır
return 0;
}
Nesne Yönelimli Programlama bölümündeki tüm dersler
1Modüler Programlama Temelleri
Başlık DosyalarıInclude Guard'larKaynak DosyalarıStatik FonksiyonlarÖzet: Modüler Hesap Makinesi4Kapsülleme
Opaque Pointer KavramıOpaque Struct TanımlamaGetter ve Setter MetotlarıSetter Metotlarında DoğrulamaÖzet: Gizli Kutu2Nesneler ve Metotlar
Nesne Olarak Struct'lar'Self' İşaretçisiConst Doğruluğuİşaretçi vs DeğerYardımcı MetotlarÖzet: Point Manager5Proje: Basit Banka Hesabı
Proje KurulumuHesabın Oluşturulması3Nesne Yaşam Döngüsü
Constructor DeseniDestructor DeseniStack İlklendirmeDerin KopyalamaÖzet: String Wrapper6Kompozisyon Yoluyla Kalıtım
Struct Gömmeİlk Üye KuralıÜst Üyelere ErişimUpcastingÖzet: Şekil HiyerarşisiKendi başına pratik yap: Online C derleyicisi