חזרה: מברך
חלק מהיחידה תכנות מונחה עצמים במסלול ה-C של Coddy. שיעור 43 מתוך 61.
אתגר
קלבוא נבנה מערכת Greeter שמדגימה פולימורפיזם באמצעות מצביעים לפונקציות: אותו סוג מבנה מפיק פלטים שונים, בהתאם לפונקציית הברכה שמחוברת אליו.
תחלק את הקוד שלך בין שלושה קבצים:
greeter.h: כאן תגדיר את הממשק של המברך. צור טיפוס של מצביע לפונקציה בשםGreetFunc, שמקבלconst char*(שם לברכה) ולא מחזיר דבר. לאחר מכן הגדר מבנהGreeterשמכילlanguage(מסוגconst char*) ומצביע לפונקציהgreetמטיפוסGreetFunc.greeter.c: ממש את פונקציות הברכה שמייצגות שפות שונות:greet_english: מדפיסהHello, name!greet_spanish: מדפיסהHola, name!
main.c: חבר כאן את כל החלקים. צור שני מופעים שלGreeter, אחד לאנגלית ואחד לספרדית, וכל אחד מהם יחובר לפונקציית הברכה המתאימה לו. קרא שם מהקלט, ואז קרא לפונקציהgreetשל שני המברכים כדי להדגים התנהגות פולימורפית.
התוכנית שלך תקבל קלט יחיד: שם לברכה.
צור מברך באנגלית שהשפה שלו מוגדרת ל-English, ומברך בספרדית שהשפה שלו מוגדרת ל-Spanish. עבור כל מברך, הדפס את השפה שלו ואחריה נקודתיים ורווח, ואז קרא לפונקציה greet שלו עם השם שהתקבל בקלט.
דוגמת פלט כאשר הקלט הוא Maria:
English: Hello, Maria!
Spanish: Hola, Maria!דוגמת פלט כאשר הקלט הוא Carlos:
English: Hello, Carlos!
Spanish: Hola, Carlos!שני המברכים הם מאותו טיפוס Greeter, ובכל זאת הם מפיקים ברכות שונות, משום שלכל אחד מהם משויכת פונקציה שונה לחבר greet. זכור להשתמש בשומרי הכללה בקובץ הכותרת שלך.
נסו בעצמכם
#include <stdio.h>
#include <string.h>
#include "greeter.h"
int main() {
// קראו את השם שהוזן
char name[100];
scanf("%s", name);
// TODO: צרו מברך באנגלית
// - הגדירו את language ל-"English"
// - הגדירו את greet לפונקציה greet_english
// TODO: צרו מברך בספרדית
// - הגדירו את language ל-"Spanish"
// - הגדירו את greet לפונקציה greet_spanish
// TODO: עבור כל מברך:
// 1. הדפיסו את language ואחריו ": "
// 2. קראו לפונקציה greet עם השם
return 0;
}
כל השיעורים ביחידה תכנות מונחה עצמים
4כימוס
המושג של מצביעים אטומיםהגדרת מבנים אטומיםפונקציות Get ו-Setאימות ב-Settersסיכום: הקופסה הסודית2אובייקטים ומתודות
מבנים כאובייקטיםמצביע 'Self'נכונות constמצביע לעומת ערךמתודות עזרחזרה: מנהל נקודות5פרויקט: חשבון בנק פשוט
הגדרת הפרויקטמימוש החשבוןתרגלו בעצמכם: קומפיילר C אונליין