Danh mục

LẬP TRÌNH C nâng cao - bài 3 - nhắc lại về lớp part 2

Số trang: 6      Loại file: pdf      Dung lượng: 129.05 KB      Lượt xem: 14      Lượt tải: 0    
Xem trước 2 trang đầu tiên của tài liệu này:

Thông tin tài liệu:

BÀI 3: NHẮC LẠI VỀ LỚP Cơ bản về lớpChúng ta sẽ được nhắc lại cách viết các hàm cơ bản để khởi tạo lớp và các hàm cơ bản liên quan.
Nội dung trích xuất từ tài liệu:
LẬP TRÌNH C nâng cao - bài 3 - nhắc lại về lớp part 2 LẬP TRÌNH C/C++ NÂNG CAOYêu cầu trước khi đọc: học xong Lập trình C/C++ căn bản BÀI 3: NHẮC LẠI VỀ LỚPCơ bản về lớpCODEclass Date{int day;public:Date(int,int a=1);int month;void setDay(int);void output();};int main(){Date d(6);d.month=3;d.setDate(25);d.output();return 0;}Date::Date(int day,int month){this->day=day;this->month=month;}void Date::setDay(int day){this->day=day;}void Date::output(){cout}Hàm khởi tạoChúng ta có thể viết một hàm khởi tạo như thế nàyCODEclass Student{string name;int age;public:Student(string name,int n):name(name),age(n){}};Nó tương đương vớiCODEclass Student{string name;int age;public:Student(string name,int n){(*this).name = name;this->age = n;}};Hàm bạn (friend function)CODEclass Student{public:int id;friend bool equal(const Student&,const Student&);};int main(){Student s1;s1.id=2;Student s2;s2.id=3;cout(a) hoặcoperator>>(cin,a) Overload 2 toán tử nhập và xuất này hếtsức quan trọng về sau. Nhân tiện mỗi khi cấp phát bộ nhớ, dùng xong phảiluôn hủy đi để thu hồi lại bộ nhớ đã cấp phát. Vì về saugame cái ưu tiên hàng đầu là bộ nhớ, đừng để lại rác.CODEclass Date{public:int day;int month;friend istream& operator>>(istream&,Date&);friend ostream& operator(istream& ins,Date& d){ins>>d.day;ins>>d.month;ins.get(); //phải xóa bộ đệmreturn ins;}ostream& operatorint main(){myclass m;return 0;}myclass::myclass(){p=new int; //phải cấp phát bộ nhớ để tránh segmentation fault}myclass::~myclass(){delete p;}Hàm khởi tạo sao chép (copy constructorCODEclass Date{public:int day;int month;char *special;Date(int,int,char*);Date(const Date&);~Date(){delete [] special; //bởi vì chúng ta cấp phát bộ nhớ cho nó}};Date::Date(int day,int month,char *special){this->day=day;this->month=month;this->special=special;}Date::Date(const Date& d){this->day=d.day;this->month=d.month;this->special=new char[strlen(d.special)+1]; //cấp phát bộ nhớ cho nóstrcpy(this->special,d.special); //phải dùng strcpy với char array}int main(){Date d1(29,8,birthday);Date d2(d1);cout

Tài liệu được xem nhiều: