troikasix 0 Report post Posted September 3, 2007 Memahami kaitan OBJEK dengan MEMORI ALLOCATION - untuk bebudak baru belajar.Kat kolej/universiti, bila bincang pasal objek, lecturer sebuk cakap objek adalah benda mcam orang, basikal, rumah dan bermacam lagilah objek seharian yang kita boleh nampak.Tapi nak translate jadi programming mmg tak masuk akal. Komputer tak paham 'orang', 'meja' dan 'kerusi'. Asal-Usul Objek dalam C++Bila kita membuat deklarasi pembolehubahint x; komputer akan simpan ruangan bersaiz 4 byte. Dan bila kita masukkan nilai pada pembolehubah tersebut, x = 23; komputer akan masukkan nilai 23 ke ruangan yang disediakan tadi. Ini adalah perkara paling asas dalam programming. (Variable declaration). Perkataan lain seperti char (1 byte), double (8 byte), float(4 byte) dan long (8 byte) juga bertujuan sama, cuma berbeza dari segi saiz memori yang akan diperuntukkan. Lahirnya struct Timbul masalah bila kita perlu menggunakan jenis data yang pelik2 seperti Tarikh dan Alamat kediaman. Maka diperkenalkan perkataan struct dalam C. Daripada buat camni int day; int month; int year; void displayDate( int day, int mth, int yr ) { cout << day << "/" << mth << "/" << yr << endl; } Gunakan struct lebih baik struct Date { int day; int month; int year; }; void displayDate( Date tl ) { cout << tl.day << "/" << tl.mth << "/" << tl.yr << endl; } Dan digunakan sebegini int main (void) { // Sejenis datatype baru, kompiler menyediakan ruang memori sebanyak // 12 byte (4 + 4 + 4) Date tl; tl.day = 31; tl.month = 8; tl.year = 1957 displayDate( tl ); } Sejenis pembolehubah baru telah tercipta hasil gabungan 3 pembolehubah int. Perkataan struct tidak akan wujud lagi selepas program dikompil. Komputer cuma akan melihat ruangan 12 byte, untuk kegunaan menyimpan data. Deklarasi struct sememangnya cuma digunakan sebagai rujukan semasa proses kompil, setiap kali peruntukan memori perlu dibuat. Teknik ni memang bagus dan digunakan dengan meluas dalam program bahasa C. Windows API banyak menggunakan perkataan struct untuk memudahkan proses menulis program seperti: POINT //koordinat pada skrin RECT //Kotak pada skrin Lahirnya class Dengan teknik berorientasikan objek, C++ memperkenalkan keyword 'class' untuk memajukan lagi 'struct' tadi. class Date { public: int day; int month; int year; void displayDate() { cout << day << "/" << mth << "/" << yr << endl; } } int main (void) { // Datatype baru, kompiler perlu menyediakan ruang memori sebanyak // 12 byte (4 + 4 + 4) Date tl; tl.day = 31; tl.month = 8; tl.year = 1957 tl.displayDate( ); } Perkataan class memajukan struct dengan menambah kebolehan fungsi di dalamnya. Ini berlaku kerana kebanyakan fungsi hanya sesuai untuk satu jenis struct. Maka fungsi2 ini dimasukkan sekali. Perkataan class juga akan hilang selepas proses kompil berlaku. Cuma saiz memori sahaja yang dapat dilihat apabila applikasi dijalankan. Jadi apakah sebenarnya objek yang difahami oleh komputer, tak lain cuma Memori Allocation jenis data yang kita cipta sendiri. Kesimpulan 1- *Objek bagi lecturer kita, adalah sebarang benda *class atau struct dimata komputer, menjawab soalan berapa ruang perlu disediakan dalam memori. Ruangan memori tersebut yang dirujuk sebagai objek. 2- *struct merupakan gabungan beberapa deklarasi pembolehubah *class merupakan struct + fungsi. Dengan formula A = B dan B = C, maka A = C, kita boleh katakan, sebarang pembolehubah adalah juga merupakan objek int x; //x merupakan deklarasi objek dari jenis int. double y; //y merupakan deklarasi objek dari jenis double Date dt; //dt merupakan deklarasi objek dari jenis DateHarap ini membantu rakan kita yang baru belajar Orientasi Objek. Quote Share this post Link to post Share on other sites
encik pot pet 0 Report post Posted September 3, 2007 hahaha.. aku tak terrer sangat c/c++ dan oop konsep. tapi ni kali kedua aku jumpa artikel yg mengaitkan struct dgn object dan class, yg 1st aku baca dalam buku. aku sangat mengakui ni salah satu cara paling bagus utk explain oop melalui c++.terima kasih banyak2.Kat kolej/universiti, bila bincang pasal objek, lecturer sebuk cakap objek adalah benda mcam orang, basikal, rumah dan bermacam lagilah objek seharian yang kita boleh nampak.To repeat what others have said, requires education; to challenge it, requires brains. (Mary Pettibone Poole) Quote Share this post Link to post Share on other sites
violetisblue 0 Report post Posted September 3, 2007 ajar lg byk2... i nak tau semua... i nak cepat pandai... nanti senang nak wat final project i...ajar lg byk2... i nak tau semua... i nak cepat pandai... nanti senang nak wat final project i... Quote Share this post Link to post Share on other sites
CFoo++ 4 Report post Posted September 4, 2007 *struct merupakan gabungan beberapa deklarasi pembolehubah*class merupakan struct + fungsi. Aku nak betulkan sikit aa... struct dan class sebenarnya 99.999% sama, bezanya member bagi struct adalah "private" jika tak diberitahu (by default) dan member bagi class adalah "public" jika tak diberitahu. Dua-dua boleh ada pembolehubah dan fungsi. Quote Share this post Link to post Share on other sites
troikasix 0 Report post Posted September 4, 2007 Cayolah CFoo++. Tahniah tahniah. Nampak jugak kau yeee.... hahaha.Tambah sket lagi.Kalau dalam fail *.c : struct tak buleh ada member function sebab C tak support. Yang CFoo cakap tadi betul dalam fail *.cpp. Jadi jgn terperangkap dengan "struct + member function" dalam *.h pastu #include dalam fail *.cP/S: Aku tak penah buat fail *.c lagi skang ni. Quote Share this post Link to post Share on other sites
kz_syaz 0 Report post Posted September 5, 2007 boleh terang dengan lebih jelas lagi tentang benda tu????? nak pahamkan lagi..... Quote Share this post Link to post Share on other sites
violetisblue 0 Report post Posted September 5, 2007 utk yg br belajar, i nak tambah sikit berkaitan rules for variable yg kita gune dlm c++...some example for ilegal identifier,Ilegal Identifier: employeee SalaryDescription: antara employee dgn Salary tak blh ade space. so mesti letak underscore(_)Ilegal Identifier: Hello!Description: tanda seruan tak blh digunakan dlm identifier.Ilegal Identifier: one + twoDescription: symbol tambah(+) juga tak blh digunakan dlm identifier.Ilegal Identifier: 2ndDescription: identifier juga tak blh di mulai dgn digit atau nombor. Quote Share this post Link to post Share on other sites
troikasix 0 Report post Posted September 6, 2007 boleh terang dengan lebih jelas lagi tentang benda tu????? nak pahamkan lagi.....Tang mana tak faham? Tang CFoo cakap ke? Tang saya cakap?Memula saya kata: class == struct + member functionCFoo betulkan: class == structDalam Bahasa C++- keyword 'class' dan 'struct' adalah sama sebab struct pun boleh ada member function.- Bezanya, secara otomatik, member dalam 'class' adalah private ttp struct public. (sbb tu CFoo kata 99.9999% sama)Dalam Bahasa C- keyword class tidak wujud- struct tidak boleh ada member function. Hanya variable.Jadi contoh code berikut adalah valid dalam bahasa C++ tapi tidak valid dalam bahasa Cclass Date { int day; <-------------- Member variable semua private secara default int month; int year; public: <----------------- Kena letak perkataan ni void displayDate(); }; // Ataupun boleh guna struct struct Date { int day; <-------- Otomatik jadi public decklaration int month; int year; void displayDate(); <--- Nampak tak member function dalam struct ni diperbolehkan };Timbul persoalan, macamana compiler nak tahu, kita tulis dalam bahasa C++ ataupun C? Sebab compiler sekarang boleh compile kedua2 bahasa sekali jalan,Jawapan: Berdasarkan fail extension*.CPP <--- Fail ini dikompail ikut bahasa C++*.C <--- Fail ini dikompail ikut bahasa C Quote Share this post Link to post Share on other sites
encik pot pet 0 Report post Posted September 7, 2007 satu2nya buku yg aku pernah baca yg ajar OOP konsep dari struct ke class ialah Thinking in C++ - Bruce Eckel. apa kata kita tetapkan buku ni sebagai buku teks utk forum c/c++ putera.com ni. aku pilih buku ni bukan sebab tu saja, tapi penjelasan dari Eckel ni sangat bagus, step by step, dan lebih mudah utk difahami secara mendalam. tambahan pula, buku ni boleh di download secara percuma disini - http://mindview.net/Books/TICPP/ThinkingInCPP2e.html Quote Share this post Link to post Share on other sites
troikasix 0 Report post Posted September 7, 2007 Aku pun tak ingat mana aku dapat info pasal benda ni. Tapi mungkin buku yang sama kot. Memang aku pun baca buku tu gak dulu. Quote Share this post Link to post Share on other sites
Paralys3r 0 Report post Posted September 8, 2007 nice intro.. harap sambungannya lebih menunjukkan "bit dan byte"nya. For example saya suka juga baca bagaimana compiler mengubah object oriented code ke machine code, "this" pointer, vtable dan benda2 macam tu... oleh kerana "bit dan byte" relevan kat sini , saya suka nak ingatkan yang data type "int" tak semestinya 32-bit wide (but this is generally true for modern arch) dan data type "long" is not always mapped to 64-bit (in 32-bit arch it's still 32-bit wide). "long long" barulah sentiasa 64-bit. Quote Share this post Link to post Share on other sites
otai_g 3 Report post Posted July 2, 2008 bro dah dekat nak masuk setahun dah ni.bila nak sambung siri tutorial ni bro? Quote Share this post Link to post Share on other sites
troikasix 0 Report post Posted July 2, 2008 Rasanyer dah sambung dgn topik vtable pointer. Tapi aku try search balik, system kata aku tak log in, camner yek? Quote Share this post Link to post Share on other sites
otai_g 3 Report post Posted July 3, 2008 forum ni giler sikit.kalo jd mcm tu ko kena clearkan/del semua temporary files, history, cookies n then log in balik.br bleh ok balik. Quote Share this post Link to post Share on other sites