Özet: Point Manager
Coddy'nin C Journey'sinin Object Oriented Programming bölümünün bir parçası — ders 11 / 61.
Görev
Kolay2D koordinatları yöneten eksiksiz bir Point modülü oluşturalım. Bu tekrar görevi, yapıları (structs) nesne gibi ele alma konusunda öğrendiğiniz her şeyi bir araya getiriyor; durumu değiştirmek için işaretçileri (pointers) ve salt okunur işlemler için const işaretçileri kullanacaksınız.
Üç dosya oluşturacaksınız:
point.h: İki tam sayı üyesi olan birPointyapısı bildirin:xvey. Ayrıca metot gibi davranan iki fonksiyon bildirin:point_move— bir Point işaretçisi ile birlikte iki tam sayı (dxvedy) alır ve bu değerlerixvey'ye ekleyerek noktanın konumunu kaydırır.point_print— birconstPoint işaretçisi alır ve koordinatlarını görüntüler (bu fonksiyon noktayı değiştirmemelidir).
POINT_Hsembolü ile include guard (ekleme koruması) kullanın.point.c: Her iki fonksiyonu da uygulayın. Hangi fonksiyonun normal bir işaretçiye (noktayı değiştirmek için) ve hangisininconstbir işaretçiye (değişiklik yapmadan güvenli bir şekilde okumak için) ihtiyaç duyduğunu dikkatlice düşünün.main.c: Bir Point oluşturun, onu hareket ettirin ve farklı aşamalardaki konumunu görüntüleyin.
Dört tam sayı girişi alacaksınız: başlangıç x, başlangıç y, dx değeri (yatayda hareket miktarı) ve dy değeri (dikeyde hareket miktarı).
Ana dosyanızda (main file), başlangıç koordinatlarıyla bir Point başlatın, başlangıç konumunu yazdırın, verilen miktarlarda hareket ettirin ve ardından yeni konumunu yazdırın.
point_print fonksiyonu şu formatta çıktı vermelidir:
Point: ({x}, {y})Örneğin, 3, 5, 2 ve -1 girişleri için çıktı şöyle olacaktır:
Point: (3, 5)
Point: (5, 4)Kendin dene
#include <stdio.h>
#include "point.h"
int main() {
// Giriş değerlerini oku
int x, y, dx, dy;
scanf("%d", &x);
scanf("%d", &y);
scanf("%d", &dx);
scanf("%d", &dy);
// TODO: (x, y) başlangıç koordinatlarıyla bir Point oluşturun
// TODO: point_print kullanarak başlangıç konumunu yazdırın
// TODO: point_move kullanarak noktayı (dx, dy) kadar hareket ettirin
// TODO: point_print kullanarak yeni konumu yazdırın
return 0;
}
Object Oriented Programming 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şisi