Rangkuman: Pengelola Point
Termasuk bagian Pemrograman Berorientasi Objek dalam perjalanan C di Coddy. Pelajaran 11 dari 61.
Tantangan
MudahMari buat module Point lengkap yang mengelola koordinat 2D. Tantangan ulasan ini menggabungkan semua yang telah kamu pelajari tentang memperlakukan struct sebagai object: menggunakan pointer untuk mengubah state dan pointer const untuk operasi hanya-baca.
Kamu akan membuat tiga file:
point.h: Deklarasikan structPointdengan dua anggota integer:xdany. Deklarasikan juga dua fungsi yang berperan sebagai method:point_move: menerima pointer ke Point beserta dua integer (dxdandy), lalu menggeser posisi point dengan menambahkan nilai-nilai ini kexdanypoint_print: menerima pointerconstke Point dan menampilkan koordinatnya (fungsi ini tidak boleh mengubah point)
POINT_H.point.c: Implementasikan kedua fungsi. Pikirkan dengan cermat fungsi mana yang memerlukan pointer biasa (untuk mengubah point) dan fungsi mana yang menggunakan pointerconst(untuk membaca dengan aman tanpa melakukan perubahan).main.c: Buat sebuah Point, pindahkan posisinya, lalu tampilkan posisinya pada tahap-tahap yang berbeda.
Kamu akan menerima empat input integer: x awal, y awal, nilai dx (jarak perpindahan horizontal), dan nilai dy (jarak perpindahan vertikal).
Di file utama, inisialisasi Point dengan koordinat awal, cetak posisi awalnya, pindahkan posisinya sejauh jumlah yang diberikan, lalu cetak posisi barunya.
Fungsi point_print harus menghasilkan output dengan format ini:
Point: ({x}, {y})Misalnya, dengan input 3, 5, 2, dan -1, outputnya adalah:
Point: (3, 5)
Point: (5, 4)Coba sendiri
#include <stdio.h>
#include "point.h"
int main() {
// Baca nilai input
int x, y, dx, dy;
scanf("%d", &x);
scanf("%d", &y);
scanf("%d", &dx);
scanf("%d", &dy);
// TODO: Buat Point dengan koordinat awal (x, y)
// TODO: Cetak posisi awal menggunakan point_print
// TODO: Geser titik sejauh (dx, dy) menggunakan point_move
// TODO: Cetak posisi baru menggunakan point_print
return 0;
}
Semua pelajaran di Pemrograman Berorientasi Objek
1Dasar-Dasar Pemrograman Modular
file headerProteksi includefile sumberFungsi StatisRingkasan: Kalkulator Modular4Enkapsulasi
Konsep Opaque PointerMendefinisikan Opaque StructGetter dan SetterValidasi pada SetterUlasan: Kotak Rahasia2Object dan method
Struct sebagai objectPointer 'self'Konsistensi constPointer vs nilaiMethod pembantuRangkuman: Pengelola Point5Proyek: Akun Bank Sederhana
Penyiapan ProyekImplementasi Akun3Siklus Hidup object
Pola KonstruktorPola DestruktorInisialisasi StackSalinan MendalamRangkuman: Pembungkus string6Pewarisan melalui Komposisi
Penyematan StructAturan Anggota PertamaMengakses Anggota ParentUpcastingRekap: Hierarki Bentuk9Proyek: Penggambar Bentuk
Ringkasan ProyekImplementasi LingkaranImplementasi Persegi PanjangPenggunaan PolimorfismeWadah BentukLatihan sendiri: Compiler C online